通知创建之后,需要显示在状态条和状态栏中。所谓状态条,就是手机最上方的长方形区域,一般用于显示电量、信号、时间等。而状态栏,就是将状态条下来之后出现的View。一般用于显示通知内容、正在运行的程序、系统设置的一些快捷方式等。
创建一个通知,需要显示在状态条,和状态栏中。
具体步骤为:
1、创建一个 NotificationManager:
- NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
- Notification notification = new Notification(R.drawable.notification, "通知滚动显示文本", System.currentTimeMillis());
第一个参数是设置其小图标;第二个参数是设置文本内容;第三个参数是设置时间。
3、设置 Notification 的 flags,用户在点击通知之后,通知会自动消失;
- notification.flags = notification.FLAG_AUTO_CANCEL;
- notification.setLatestEventInfo(this, "通知标题", "通知内容", contentintent);
第一个参数是上下文,第二个参数是通知的标题,第三个参数是通知的内容,第四个参数是一个 PendingIntent ,也就是延期意图,用于处理即将发生的意图。
PendingIntent :例如短信通知,当用户点击短信通知之后,系统会跳转到短信的界面。PendingIntent 就是起到这个作用。
PendingIntent 也可以看做是一个 Intent 的包装,其实质还是一个 Intnet 。
代码实现过程中,首先是实例化一个 Intent ,然后设置其 Action 和 Data ,然后将其包装成 PendingIntent 。
- Intent intent = new Intent();
- intent.setAction(Intent.ACTION_CALL);
- intent.setData(Uri.parse("tel:110"));
- // PendingIntent延期意图
- PendingIntent contentintent = PendingIntent.getActivity(this, 0, intent, 0);
- nm.notify(0, notification);
完整代码:
- public void click1(View view) {
- NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
- Notification notification = new Notification(R.drawable.notification, "通知滚动显示文本", System.currentTimeMillis());
- notification.flags = notification.FLAG_AUTO_CANCEL;
- Intent intent = new Intent();
- intent.setAction(Intent.ACTION_CALL);
- intent.setData(Uri.parse("tel:110"));
- // PendingIntent延期意图
- PendingIntent contentintent = PendingIntent.getActivity(this, 0, intent, 0);
- notification.setLatestEventInfo(this, "通知标题", "通知内容", contentintent);
- nm.notify(0, notification);
- }