【桌面小部件AppWidgetProvider简单分析】炒沙作縻终不饱,缕冰文章费工巧。这篇文章主要讲述桌面小部件AppWidgetProvider简单分析相关的知识,希望能为你提供帮助。
1、一般桌面小部件涉及到的类
- AppWidgetProvider :BroadcastRecevier子类,用于接收更新,删除通知
- AppWidgetProvderInfo:AppWidget相关信息(大小,更新频率等),xml形式
- AppWidgetManger:AppWidget管理类,用于向provider发送消息
- RemoteViews:可以在其他进程中运行的类,用于向provider发送通知。
- RemoteViewsService : 是一个远程的服务适配器 可以请求RemoteViews,管理RemoteViews的服务.
- RemoteViewsFactory : 提供了RemoteViewsFactory用于填充远程集合视图。
- RemoteViewsService是一个抽象类,继承了Service,底层中有IRemoteViewsFactory.aidl,且发现该Service中的IBinder是通过AIDL实现的,类中定义了接口RemoteViewsFactory,接口中的方法通过AIDL与其进程进行通讯,即跨进程通信。当有多个RemoteViewsFactory时,存储在HashMap sRemoteViewFactories中便于统一管理
- 故当我们的widget中包含ListView,Gridview等集合视图的时候.我们就需要借助一个类RemoteViewsService,继承RemoteViewsService实现接口并复写onGetViewFactory 返回RemoteViewsFactory
- RemoteViews并没有继承系统View,只是实现了Parcelable(android特有的方式)和Filter接口。故RemoteViews实现了序列化。
- 底层中RemoteViews.aidl,故也是通过AIDL与其他进程通讯的,即跨进程通信
- AppWidgetProvider继承了BroadcastRecevier,生命周期也比较简单,可以参考demo:https://github.com/lelelongwang/TestApp 中的MyAppWidget中的log
- 是个AppWidget工具类,单例的方式实现。可以通过getInstance()获取实例。
推荐阅读
- 微信h5页面中跳转下载第三方app的办法
- The module is an Android project without build variants, and cannot be built
- android studio - Indexing paused due to batch updated
- react_app 项目开发 _前后端分离_后台管理系统_开始
- [译]A Bayesian Approach to Digital Matting
- Androidstudio_LinearLayout
- 亦跑APP震撼上线_了解亦跑app必看——亦跑运营推广商
- Windows系统下编译FFmpeg for Android(支持x264)
- 亦跑APP官方下载亦跑官网,亦跑官方运营中心,亦跑服务中心客服系统,亦跑注册,亦跑怎么玩()