Launcher3 RemoteView介绍和应用

一.RemoteView是什么

RemoteView并不是View,它的父类是Object,它主要应用在通知栏和桌面小部件。

二.RemoteView的使用

RemoteView中的点击事件传递通过PengdingIntent实现,PengdingIntent实现启动Activity、启动Service和发送广播

Launcher3 RemoteView介绍和应用_第1张图片

flags的模式有:

Launcher3 RemoteView介绍和应用_第2张图片

三.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.csdn.net/chenjian723122704/article/details/79885117

 

你可能感兴趣的:(Launcher,Launcher3)