通知栏是一个经常使用但没有仔细研究的功能,平时都是copy现成代码,等到自己去做新功能时发现自己对通知栏具体细节不了解,仔细研究了一下,平时的用法大致有较为熟悉的用法!自己平时用到的功能还是要仔细去研究下才好,别等到关键时刻用到的时候发现自己其实不会!
通知栏 :Notification
很直观的理解就是手机顶部栏显示的通知,来信息会显示,点击能进去某个界面!看似简单,其实很多需要去人为控制,包括来信息时显示信息,通知栏的图片,声音,点击进去到什么界面,是否可以清除等等。那本文会对这些细节进行介绍。
以下为具体显示一个通知栏的代码:
public static void showNotify(Context context,int notifyId)
{
Intent intent = new Intent();
(API推荐加上此参数,但实验之后不加也没问题);
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent notifyIntent = PendingIntent.getActivity(context, notifyId, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
//PendingIntent notifyIntent = PendingIntent.getActivity(context, notifyId, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
(上面两种情况的模式实验没发现有什么区别,一般用cancel)
Notification msgNoti = new Notification(); (此处为一种初始化方法1)
// msgNoti.icon = R.drawable.baidu_logo;(显示的图标)
// msgNoti.tickerText = "adfadfafd.";(通知来了之后一闪而过的消息)
(此处为一种初始化方法2,第一个参数为显示图片,第二个参数为一闪而过的消息)
msgNoti = new Notification(R.drawable.ic_launcher, "adfadfafd", System.currentTimeMillis());
//这个参数表示通知栏的属性,一般为FLAG_AUTO_CANCEL,点击后自动消失,
msgNoti.flags = Notification.FLAG_NO_CLEAR;(无法被清除,一般不会使用)
msgNoti.defaults = Notification.DEFAULT_ALL;(默认的声音,灯光提示设置)
以下为具体显示内容: (第一个参数为标题,第二个参数为内容,如图二)
msgNoti.setLatestEventInfo(context, "title.........", "tikereText.................", notifyIntent);
NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify(notifyId, msgNoti);
}
红色部分为 tickerText显示的内容
(图一)
(图二)
以上为一个简单的通知栏的显示,后续再介绍自定义通知栏。
(ps:等到自己来写博客时真心佩服那些坚持写下来而且写的很好的博主!)