1.导入android.support.v7包
Android.mk 中加入LOCAL_STATIC_JAVA_LIBRARIES := \ android-support-v4 \ android-support-v7-recyclerview \ android-support-v7-preference \ android-support-v7-appcompat \
2.状态栏创建
private PendingIntent pd; private boolean mRecordState = false; private NotificationManager manager; private Notification notification;
获取 Notification 实例,设置属性,并发送通知
//设置点击跳转事件 Intent intent2 = new Intent(this,SoundRecorder.class); pd = PendingIntent.getActivity(this, 0, intent2, 0); manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); NotificationCompat.Builder builder = new NotificationCompat.Builder(this); notification = builder .setContentTitle(getResources().getString(R.string.notification_info)) .setContentIntent(pd) .setSmallIcon(R.drawable.ic_launcher_soundrecorder) .build(); //特征属性 notification.flags = Notification.FLAG_AUTO_CANCEL;
显示
manager.notify(1, notification);销毁
manager.cancel(1);3.如果点击事件进入栈中已有此activity的实例,而不是新建一个。
AndroidManafest.xml的activity标签中设置
android:launchMode="singleTask"特征属性 notification.flags
FLAG_INSISTENT; //重复发出声音,直到用户响应此通知
FLAG_ONGOING_EVENT; //将此通知放到通知栏的"Ongoing"即"正在运行"组中
FLAG_NO_CLEAR; //表明在点击了通知栏中的"清除通知"后,此通知不清除,
Notification.FLAG_SHOW_LIGHTS //三色灯提醒,在使用三色灯提醒时候必须加该标志符
Notification.FLAG_ONLY_ALERT_ONCE //发起Notification后,铃声和震动均只执行一次
Notification.FLAG_AUTO_CANCEL //用户单击通知后自动消失
Notification.FLAG_FOREGROUND_SERVICE //表示正在运行的服务
* //经常与FLAG_ONGOING_EVENT一起使用
* notification.number = 1; //number字段表示此通知代表的当前事件数量,它将覆盖在状态栏图标的顶部
* //如果要使用此字段,必须从1开始
如果想要更新一个通知,只需要在设置好notification之后,再次调用 setLatestEventInfo(),然后重新发送一次通知即可,即再次调用notify()。
添加声音 notification.defaults |=Notification.DEFAULT_SOUND;
添加振动 notification.defaults |= Notification.DEFAULT_VIBRATE;
添加LED灯提醒 notification.defaults |= Notification.DEFAULT_LIGHTS;