Launcher3 RemoteView介绍和应用

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值