首页 > 代码库 > Notifications 22222222222

Notifications 22222222222

 

 

Notifications 有两个比较大的更新版本

在不使用新API的情况下,如果用户要对一条短信的Notifications进行删除或者回复 ,用户需要进入到应用程序。如果使用新API的话,用户不需要进入应用程序就可以对短信 进行 删除 或者 回复了。

 

并不是所有通知的功能都能用于特定的版本。例如动作按钮只能用于4.1Jerry Bean之后。因为只有从这个版本往后才有可展开的通知出现。为了确保达到最好的兼容性,请使用NotificationCompat (V4包)及其子类创建通知, 最好是NotificationCompat.Builder。此外,当你实现一个通知时,请遵循如下过程:

(1).无论用户使用什么版本,都应该提供通知所有的功能给所有用户。为了做到这一点,需要在一个Activity中验证所有功能是否可用。有时候你可能需要添加一个新的Activity。例如:当你想调用addAction()方法来控制媒体停止和播放时,首先应该在一个Activity中实现这个功能。

(2).当用户点击通知时,确保所有用户点击后都能启动一个界面。我们需要为Activity创建一个PendingIntent对象。然后调用setContentIntent()方法将PendingIntent对象添加到通知中去。

(3).现在可以在你想要使用的通知中添加可展开的特征。记住一点,当用户点击通知时,对于那些你想要添加到通知的功能,要保证它们在Activity中也是可用的。

 

Api11 (Android 3.0 ) : (虽然是Android3.0 加入的)加入了  Notification.Builder 更容易创建Notifications。 为了兼容性,我们用v4包的。

 

Api16 (Android 4.1.2 )

       /**         * 添加点击删除的动作         */        builder.addAction(R.drawable.ic_launcher, "删除", getDeletePendingIntent(ctx));

 

 


 

 关于notification。两种写法,一种v4的compat.build,一种最原始的notification。

 

源代码中说明: Notification.Builder 更容易创建Notifications。 所以,推荐用 compat.build (v4包的)来创建通知。

因为   public Notification.Builder (Context context)   Added in API level 11 (在11版本 Androd 3.0 才加入)。

 

原始的:

        NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);        Notification notification = new Notification(R.drawable.ic_launcher, "title", System.currentTimeMillis());        notification.defaults = 0;        Uri uri = Uri.parse("http://baidu.com");        Intent intent = new Intent(Intent.ACTION_VIEW, uri);        intent.setComponent(null);        PendingIntent pi = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);        notification.setLatestEventInfo(getApplicationContext(), "title", "content", pi);        mNotificationManager.notify(1000, notification);

 

 

v4包的:  系统的 public Notification.Builder (Context context)   Added in API level 11 (在11版本 Androd 3.0 才加入)。

        NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);        NotificationCompat.Builder builder = new NotificationCompat.Builder(                getApplicationContext());        builder.setSmallIcon(R.drawable.ic_launcher);        builder.setDefaults(0);        builder.setAutoCancel(true);        builder.setContentTitle("title");        builder.setContentText("content");        Uri uri = Uri.parse("http://baidu.com");        Intent intent = new Intent(Intent.ACTION_VIEW, uri);        intent.setComponent(null);        PendingIntent pendingIntent = PendingIntent.getActivity(                getApplicationContext(), 0, intent, 0);        builder.setContentIntent(pendingIntent);        mNotificationManager.notify(1000, builder.build());

 

 

 

 


 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

Notifications 22222222222