一.RemoteView是什么
RemoteView并不是View,它的父类是Object,它主要应用在通知栏和桌面小部件。
二.RemoteView的使用
RemoteView中的点击事件传递通过PengdingIntent实现,PengdingIntent实现启动Activity、启动Service和发送广播

flags的模式有:

三.RemoteView的原理
RemoteViews支持在其他进程显示和更新View,由于RemoteViews没有findViewById的方法,因为它是远程的View,即使有findViewById我们也不知道远程app的资源文件id 所以如果想要更新View的内容 就要使用RemoteViews提供的一系列set方法
RemoteViews每调用用一个set方法都会添加一个Action到Action列表中,Action也是序列化的,也可以通过Binder传到远程。当执行Notification的notify方法后,就会调用RemoteView的apply方法,该方法会遍历每个Action,执行Action的 apply函数,apply函数会通过反射的方式调用RemoteViews的子子view的method,并进行设置,从而完成布局更新。
参考博客:https://blog.youkuaiyun.com/chenjian723122704/article/details/79885117

本文深入解析了RemoteView的概念,其在通知栏和桌面小部件中的应用,以及如何通过PendingIntent实现点击事件。RemoteView通过一系列set方法支持跨进程的View显示与更新,利用Action列表和Binder机制实现布局的远程修改。
962

被折叠的 条评论
为什么被折叠?



