Android读书笔记---RemoteViews 远程View

(内容来自于Android开发艺术探索)
RemoteViews 远程View,可以跨进程更新它的页面。
例如自定义一个Notification

Notifiaction notification=new Notification();
notification.icon=R.drawable.ic_luncher;
notification.tickerText="test"
notification.when=System.currentTimeMillis();
notification.flags=Notification.FLAG_AUTO_CANCEL;
Intent intent=new Intent(this,Act);
PendingIntent pendingIntent=PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
RemoteViews remoteViews=new RemoteViews(getPackageName(),R.layout.layout_notification);
remoteViews.setTextView(R.id.msg,"..");
remoteViews.setImageViewResource(R.id.icon,R.drawable.icon1);
PendingIntent pendingActivity=PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(R.id.open_activity2,pendingActivity);
notification.contentView=remoteViews;
notification.contentIntent=pendingIntent;
NotificationManager manager=getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(2,notificaiton);

1.使用RemoteView需要提供当前应用的报名,和替换布局的id

RemoteViews remoteViews=new RemoteViews(getPackageName(),R.layout.layout_notification);

2.RemoteViews无法直接访问它的布局中的View,可以通过RemoteView提供的方法访问

remoteViews.setTextView(R.id.msg,"..");
remoteViews.setImageViewResource(R.id.icon,R.drawable.icon1);

3.如果布局中的View需要点击事件,则要通过PendingIntent

pendingActivity=PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(R.id.open_activity2,pendingActivity);

你可能感兴趣的:(读书笔记)