理解RemoteView
- RemoteViews在安卓中的使用场景有通知栏通知和桌面小部件
- 通知栏主要通过NotifcationManager的notify来实现
- 桌面小部件通过AppWidgetProvider来实现,AppWidgetProvider本质上是个广播
- 通知栏通知和桌面小部件都运行在其他进程中,确切的说是SystemServer进程,
- 为了实现跨进程通信,remoteViews提供了许多set方法,并且这些方法是View方法的子集,且RemoteViews支持的View是有限的。
- PendingIntent表示的是将来某个时刻即将发生的Intent,而Intent表示立即发生。p228
- RemoteView原理是应用将对RemoteView的操作封装成Action对象,Action本身是实现了Parceable,可以跨进程传输,然后SystemServer接收Action,依次调用Action的apply方法执行对RemoteView的操作,这样做避免了大量的IPC操作,提高程序性能。
网友评论