RemoteViews在通知栏上的应用
通知栏上实现系统默认效果代码如下
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this
, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new Notification.Builder(this)
.setContentTitle("我是标题")
.setContentText("我是正文")
.setWhen(System.currentTimeMillis())//弹出时间
.setSmallIcon(R.mipmap.ic_launcher)//小图标
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
.setContentIntent(pendingIntent)//设置点击跳转到MainActivity
.build();
//设置 flag FLAG_AUTO_CANCEL 点击后自动消失
notification.flags = Notification.FLAG_AUTO_CANCEL;
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(1, notification);
如下图,会在下拉通知栏弹出。点击后会跳转到MainActivity
自动以通知栏的样式
val notification = Notification()
notification.`when` = System.currentTimeMillis()
notification.flags = Notification.FLAG_AUTO_CANCEL
notification.icon = R.mipmap.ic_launcher
val intent = Intent(this, MainActivity::class.java)
var pendingIntent = PendingIntent.getActivity(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT)
val rv = RemoteViews(packageName, R.layout.list_item)
rv.setTextViewText(R.id.tv, "我是自定义通知栏文字")
rv.setTextColor(R.id.tv,Color.RED)
rv.setImageViewResource(R.id.img, R.drawable.myic)
notification.contentIntent = pendingIntent
notification.contentView = rv
val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
notificationManager.notify(1, notification)
R.layout.list_item就是定义最简单的一个布局
展开后样式如下