RemoteViews内部实现机制及应用

RemoteViews是Android中一种特殊的视图结构,用于跨进程更新界面,常见于通知栏和桌面小部件。它实现了Parcelable接口,支持有限的View类型。工作流程包括本地进程设置更新操作,转化为Action通过Binder传递给系统进程,系统进程解析并执行Action更新界面。
摘要由CSDN通过智能技术生成

RemoteViews内部实现机制及应用

一、介绍
RemoteViews是一种特殊的View视图结构,作用是显示并更新其他进程中的View界面;因其实现了Parcelable接口,所以可以实现跨进程通信;典型的应用场景是通知栏和桌面小部件开发(两者均是运行在系统进程中);因其运行在远程的进程中(此处可以理解为系统进程),所以没有办法通过findViewById()获取子控件,但是内部提供了一系列set方法用来更新界面;作为一种特殊的视图结构,RemoteViews支持的View类型有限,类型如下:
1. Layout
FrameLayout、LinearLayout、RelativeLayout、GridLayout
2. View
Button、ImageButton、ImageView、ProgressBar、TextView、ListView、GridView、StackView、AnalogClick、Chronometer、ViewFlipper、adapterViewFlipper、ViewStub。
二、内部机制
1、首先来看一下RemoteViews内部实现机制的原理图(网络图片):
RemoteViews内部机制原理图
2、RemoteViews的工作流程:
上图中的本地进程假设为我们所开发的程序,远程进程假设成系统进程;本地进程设置好一系列View显示更新的操作,然后转换成一系列Action并将其打包,通过Binder将这些操作传递给系统进程;系统进程获取到Binder后,实现解析包并执行这些Action对象中的操作,最后实现系统进程界面的显示更新。
3、Action说明:
Action是RemoteViews的内部静态抽象类,官方的解释如下:
/**
* Base class for all actions that can be performed on an
* inflated view.
* SUBCLASSES MUST BE IMMUTABLE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值