安卓通知功能
创建通知的详细步骤:
- 1.首先需要一个 NotificationManager 来对通知进行管理,可以调用 Context 的
getSystemService()方法获取到。getSystemService()方法接收一个字符串参数用于确定获取系统 的 哪 个 服 务 , 传 入 Context.NOTIFICATION_SERVICE 即 可 。 因 此 , 获 取NotificationManager 的实例就可以写成:
NotificationManager manager = (NotificationManager)
getSystemService(Context.NOTIFICATION_SERVICE);
- 2 接下来需要创建一个 Notification 对象,这个对象用于存储通知所需的各种信息,我们
可以使用它的有参构造函数来进行创建,创建一个 Notification 对象就可以写成:
Notification notification = new Notification(R.drawable.icon, "This is ticker text",System.currentTimeMillis());//第一个参数用于指定通知的图标,第二个参数用于指定通知的 ticker 内容,第三个参数用于指定通知被创建的时间,
- 3 创建好了 Notification 对象后,我们还需要对通知的布局进行设定,这里只需要调用
Notification 的 setLatestEventInfo()方法就可以给通知设置一个标准的布局。这个方法接收四个参数,第一个参数是 Context,这个没什么好解释的。第二个参数用于指定通知的标题内容,下拉系统状态栏就可以看到这部分内容。第三个参数用于指定通知的正文内容,同样下拉系统状态栏就可以看到这部分内容。第四个参数为点击的时候要做的事情,是PendingIntent。因此,对通知的布局进行设定就可以写成:
Intent intent = new Intent(this, NotificationActivity.class);//要启动的类
PendingIntent pi = PendingIntent.getActivity(this, 0, intent,PendingIntent.FLAG_CANCEL_CURRENT);
notification.setLatestEventInfo(context, "This is content title", "This iscontent text", pi);
- 4 以上工作都完成之后,只需要调用 NotificationManager 的 notify()方法就可以让通知显示出来了。notify()方法接收两个参数,第一个参数是 id,要保证为每个通知所指定的 id 都是不同的。第二个参数则是 Notification 对象,这里直接将我们刚刚创建好的 Notification 对象传入即可。因此,显示一个通知就可以写成:
manager.notify(1, notification);
PendingIntent:
在android studio中 这种方式 已被标记为过时,安卓6.0依然可用。
更推荐以下方式
android developers是这么写的:
Notification noti = new Notification.Builder(mContext)
.setContentTitle("New mail from " + sender.toString())
.setContentText(subject)
.setSmallIcon(R.drawable.new_mail)
.setLargeIcon(aBitmap)
.build();