Widget是Android1.5版所引进的特性之一.Widget,可让用户在主屏幕界面及时了解程序显示的重要信息.标准的Android系统已包含几个Widget的示例,如模拟时钟,音乐播放器等.
1、AppWidget 框架类
- 1、AppWidgetProvider :继承自 BroadcastRecevier , 在AppWidget 应用 update、enable、disable 和 delete 时接收通知。其中,onUpdate、onReceive 是最常用到的方法,它们接收更新通知。
- 2、 AppWidgetProvderInfo:描述 AppWidget 的大小、更新频率和初始界面等信息,以XML 文件形式存在于应用的 res/xml/目录下。
- 3、AppWidgetManger :负责管理 AppWidget ,向 AppwidgetProvider 发送通知。
- 4、RemoteViews :一个可以在其他应用进程中运行的类,向 AppWidgetProvider 发送通知。
2、AppWidget 框架的主要类介绍
1) AppWidgetManger 类
- bindAppWidgetId(int appWidgetId, ComponentName provider)
通过给定的ComponentName 绑定appWidgetId - getAppWidgetIds(ComponentName provider)
通过给定的ComponentName 获取AppWidgetId - getAppWidgetInfo(int appWidgetId)
通过AppWidgetId 获取 AppWidget 信息 - getInstalledProviders()
返回一个List<AppWidgetProviderInfo>的信息 - getInstance(Context context)
获取 AppWidgetManger 实例使用的上下文对象 - updateAppWidget(int[] appWidgetIds, RemoteViews views)
通过appWidgetId 对传进来的 RemoteView 进行修改,并重新刷新AppWidget 组件 - updateAppWidget(ComponentName provider, RemoteViews views)
通过 ComponentName 对传进来的 RemoeteView 进行修改,并重新刷新AppWidget 组件 - updateAppWidget(int appWidgetId, RemoteViews views)
通过appWidgetId 对传进来的 RemoteView 进行修改,并重新刷新AppWidget 组件
2) 继承自 AppWidgetProvider 可实现的方法为如下:
- 1、onDeleted(Context context, int[] appWidgetIds)
- 2、onDisabled(Context context)
- 3、onEnabled(Context context)
- 4、onReceive(Context context, Intent intent)
Tip:因为 AppWidgetProvider 是继承自BroadcastReceiver 所以可以重写onRecevie 方法,当然必须在后台注册Receiver - 5、onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
3、Demo讲解