写了两个点击事件,不同的通知,常用的和自定义的。
if(v.getId() == R.id.button1){
//系统默认布局
Bitmap btm = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(MainActivity.this).setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("5 new message")
.setContentText("twain@android.com");
mBuilder.setTicker("New message");//第一次提示消息的时候显示在通知栏上
mBuilder.setNumber(12);
mBuilder.setLargeIcon(btm);
mBuilder.setAutoCancel(true);//自己维护通知的消失
//使用默认提示音
mBuilder.setDefaults(Notification.DEFAULT_ALL);
//点击通知栏跳转的activity
Intent resultIntent = new Intent(MainActivity.this,
MainActivity.class);
PendingIntent resultPendingIntent = PendingIntent.getActivity(
MainActivity.this, 0, resultIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0, mBuilder.build());
}else if(v.getId() == R.id.button2){
//自定义显示布局
RemoteViews contentViews = new RemoteViews(getPackageName(),R.layout.custom_notification);
//通过控件的Id设置属性
contentViews.setImageViewResource(R.id.imageNo, R.drawable.ic_launcher);
contentViews.setTextViewText(R.id.titleNo, "自定义通知标题");
contentViews.setTextViewText(R.id.textNo, "自定义通知内容");
//点击通知栏跳转的activity
Intent intent = new Intent(MainActivity.this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
MainActivity.this).setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("My notification")
.setTicker("new message");
//自动管理通知栏消息
mBuilder.setAutoCancel(true);
mBuilder.setContentIntent(pendingIntent);
///自定义布局
mBuilder.setContent(contentViews);
//使用默认提示音
mBuilder.setDefaults(Notification.DEFAULT_ALL);
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1, mBuilder.build());
}
更详细的可以参考
1.一篇总结的文章
https://www.cnblogs.com/zhen-android/p/6603132.html
2.Android8.0的毛病
https://blog.csdn.net/rentee/article/details/78303532
3.对于通知属性配置忘记了的可以看这篇
https://blog.csdn.net/tiankongcheng6/article/details/78183377