第五章、理解RemoteViews
RemoteViews表示的是一个View结构,他可以在其他进程中显示。他提供了一种基础操作用于跨进程更新它的界面。
使用场景:1.通知栏和桌面小部件
一,应用
1.通知栏p234
2.桌面小部件的应用
开发步骤:1.定义小部件界面,在res/layout/下面建一个xml文件。2.定义小部件配置信息在res/layout下新建一个xml文件添加以下内容
3.定义小部件的实现类继承AppWidgetProvider
4.在AndroidManifest.xml中声明小部件,注册广播receiver并添加两个action
3.pendingIntent概述
pendingIntent在将来某个不确定的时刻,Intent表示立即发生。典型使用场景是给RemoteViews添加单击事件
支持三种特定用途;启动Activity getActivity(context,requestCode,intent,flags),启动service getService(同上),发送广播 getBroadcast(同上)
匹配规则:intent相同,requestCode也相同;intent相同:ComponentName和intent-filter相同。
第四个参数FLAG_ONE_SHOT:PendingIntent只能使用一次;FLAG_NO_CREATE:描述当前pendingintent不会主动创建,没有太大意义。FLAG_CANCEL_CURRENT:如果已经存在,都会被cancle,然后创建新的,被cancle的消息单击后无法打开。FLAG_UPDATE_CURRENT:如果已经存在,都会被更新,即他们的Intent中的Extras会被替换成最新的。
二、RemoteViews的内部机制
所支持的View类型:AnalogClock,Button,Chronometer,ImageButton,ImageView,ProgressBar,TextView,ViewFlipper,ListView,GridView,StackView,AdapterViewFlipper,ViewStub
所支持的Layout:FrameLayout,LinearLayout,RelativeLayout,GridLayout
不支持其他子类或者其他View,也无法使用自定义View