android开发艺术探索 第五章 RemoteViews PendingIntent

本章主要讲解RemoteViews的应用,PendingIntent概述、RemoteViews的机制、RemoteVIews的意义

1.RemoteViews的应用

①通知栏Notification界面自定义用到RemoteViews

②桌面小部件中的view用到RemoteViews

2.PendingIntent:表示处于待定状态下的意图。

①.pendingIntent支持启动activity,启动service,发送广播。

②.pendingIntent标识符:

    (1)FLAG_ONE_SHOT:所有消息栏都和第一条一致,只能打开任意一条

    (2)FLAG_CANCEL_CURRENT:最新一条消息栏可以打开,其他的均不能打开

    (3)FLAG_UPDATE_CURRENT:所有消息栏都和最新一条一致,均可以打开到最新一条消息的意图。

3.RemoteViews内部机制:首先RemoteViews会通过Binder传输到SystemServer进程,然后通过binder传入对view的action操作,然后达到更新view的效果。(详细如下)

    首先RemoteViews会通过Binder传输到SystemServer进程,这是因为RemoteViews实现了Pacelable接口,因此他可以实现跨进程通讯,系统会根据RemoteViews中的包名等信息得到该应用的资源。然后会通过LayoutInflater去加载RemoteViews的布局文件。在SystemServer中就是一个普通的view,只不过相对我们的进程他是RemoteViews而已。接着系统会对view进行一些更新界面的任务,这些任务就是之前我们通过set方法提交的。通过binder传入对view的action操作,然后达到更新view的效果。

4.RemoteViews的意义:可以在同一个应用的不同进程中做界面的更新操作。

猜你喜欢

转载自blog.csdn.net/gongjdde/article/details/89303384