通知

来源:互联网 发布:ubuntu uefi分区 编辑:程序博客网 时间:2024/05/17 03:51

发布一个通知:

/** * 发布通知 *  * @param id *            可以指定给通知一个id值,当打开这个通知时就可以根据这个id值将这个通知删除掉. * @param title *            通知的标题 * @param content *            通知的内容 ****/public void showNotice(Context context, int id, String title, String content) {NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context).setSmallIcon(R.drawable.ic_launcher).setContentTitle(title).setContentText(content);NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);// 点击通知时要跳到的Activity.Intent resultIntent = new Intent(context, ResultActivity.class);/* 这里指定一个id,在后面的ResultActivity里面可以根据这个id的值将这个通知清除. */resultIntent.putExtra("id", id);TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);stackBuilder.addParentStack(ResultActivity.class);stackBuilder.addNextIntent(resultIntent);PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);mBuilder.setContentIntent(resultPendingIntent);/* 这里指定一个id,在后面的ResultActivity里面可以根据这个id的值将这个通知清除. */mNotificationManager.notify(id, mBuilder.build());}


激发上面的这个方法时会在手机的通知栏上产生一个通知,点击这个通知时将跳到ResultActivity.class页面,在这个Activity里面清除掉这个通知.如果不清除,那么这个通知会一直在通知栏上面.ResultActivity.class的代码如下:

public class ResultActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);/*** 获取发送通知时指定的id **/Intent it = this.getIntent();int id = it.getIntExtra("id", 0);clearNotification(this, id);}/***根据id清除通知**/public void clearNotification(Context context,int id) {/** 清除通知 */NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);// mNotificationManager.cancelAll();清除所有已经发布的通知/** 根据指定的id清除通知.这里id的值是在发送通知时根据notify方法指定的.*/mNotificationManager.cancel(id);System.out.println("清除通知的id为:" + id);}}




原创粉丝点击