通知Notification

2018-09-10  本文已影响26人  30cf443c3643

通过建造者模式来创建通知。
为了兼容低版本,v4 Support Library中提供了
NotificationCompat.Builder()这个替代方法。
它与Notification.Builder()类似,二者没有太大区别。

通知基本用法

属性

Notification.DEFAULT_VISIBLE //添加默认震动提醒 需要VIBRATE permission
Notification.DEFAULT_SOUND //添加默认声音提醒
Notification.DEFAULT_LIGHTS //添加默认三色灯提醒
Notification.DEFAULT_ALL //添加默认以上三种全部提醒
2018-09-04_105303.png
NotificationCompat.BigPictureStyle inboxStyle = new NotificationCompat.BigPictureStyle();
inboxStyle.setBigContentTitle("大视图内容");
inboxStyle.bigPicture(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));
inboxStyle.bigLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher_round));

or

builder.setStyle(new Notification.InboxStyle()
                        .addLine("abcdefg")
                        .addLine("hijklmn")
                        .setBigContentTitle("6 new message")
                        .setSummaryText("大概内容"));
164f459d6790c0e2.gif

PendingIntent

浮动通知

以横幅的形式 在屏幕顶端悬浮显示。
通过setFullScreenIntent()设置。需要注意的是,可能需要去设置通知的横幅显示或者锁屏显示。
试验的时候,在模拟器上可以弹出浮动通知,然后可能还需要手动的去取消。但是真机上总是直接跳pendingIntent的内容,未找到原因!

自定义视图

通过RemoteViews来创建视图

RemoteViews mRemoteViews = new RemoteViews(String packageName, int layoutId);

设置的图片属性

mRemoteViews.setImageViewResource(int viewId, int srcId);

设置点击意图:

mRemoteViews.setOnClickPendingIntent(int viewId,PendingIntent pendingIntent);

设置文字

mRemoteViews.setTextViewText(R.id.tv_custom_song_singer, "周杰伦");

与builder关联

builder.setCustomContentView()

参考
Android Notification常见样式总结

上一篇下一篇

猜你喜欢

热点阅读