1.首先获取系统通知管理服务,用于启动通知:NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
2.构建notification:包含标消息标题、内容及图标
Notification notification = new Notification.Builder(context) .setContentTitle("直播节目提醒" + i).setContentText("直播节目提醒" + i) .setSmallIcon(R.drawable.icon).build(); notification.flags |= Notification.FLAG_AUTO_CANCEL;// 点击消失 notification.defaults = Notification.DEFAULT_VIBRATE;// 震动提醒
3.跳转设置
Intent myIntent = new Intent(context, ProgramActivity.class);
Program program = new Program();
program.programName = "空中火灾";
myIntent.putExtra(C.str.currentProgram, program);
PendingIntent pendIntent = PendingIntent.getActivity(context, 0, myIntent, 0);
notification.contentIntent = pendIntent;
4.启动
notificationManager.notify(105, notification);
在跳转至指定的activity在栈顶时,点击消息栏会再次new一个,为防止此种情况出现可以采取该方法:
设置activity 的launchMode为singleTop,此模式表示若栈顶是该activity时,则不会新建activity。此时若需要进行activity的数据重新加载,可在onNewIntent方法中进行数据的重新加载即可。