如何在自己的程序中添加appWidget
2个回答
展开全部
1.概述
widget宿主端进程(比如Launcher) :AppWidgetService AppWidgetManager AppWidgetHostView AppWidgetHost
widget客户端进程:RmoteViews AppWidgetProviderInfo AppWidgetProvider(extends BroadcastReceiver)
2.相关类介绍
2.1.AppWidgetService.java
这是widget framework的核心类,是系统service之一,它承担着所有widget的
管理工作。Widget安装,删除,更新等等都需要经过AppWidgetService.它是开机就启动的.
在开机过程中,java层进程System Server启动后(这个进程管理着所有的系统service, 例如
activity manager service, windows manager service, power manager service等),会创建
AppWdigetService的实例,并调用它的SystemReady()方法,在这个方法里,它做了三件事:
1)遍历所有的安装包,找到符合条件ACTION=ACTION_APPWIDGET_UPDATE和<meta-data android:name="android.appwidget.provider"/>的intent receiver,解析相关信息,保存到本地数据成员中。
2)读取本地文件数据:/data/system/appwidgets.xml,所有已安装到桌面的widget的信息都保存在这个文件里。读出来,也保存到本地数据成员里。
3)注册了三个消息:ACTION_BOOT_COMPLETED(系统启动到桌面就会发送此消息),ACTION_PACKAGE_ADDED(有新APK包安装到系统),ACTION_PACKAGE_REMOVED(有APK包被删除)。当系统启动到桌面后,AppWidgetService接收到了ACTION_BOOT_COMPLETED消息,它会去检查本地数据成员,如果有已经安装到桌面的widget,它会上发ACTION_APPWIDGET_ENABLED和ACTION_APPWIDGET_UPDATE消息。如果有widget设置了updatePeriodMillis的属性,它就会开始计时(这个是通过AlarmManager来实现的),到时间时,就会再次上发ACTION_APPWIDGET_UPDATE消息。
widget宿主端进程(比如Launcher) :AppWidgetService AppWidgetManager AppWidgetHostView AppWidgetHost
widget客户端进程:RmoteViews AppWidgetProviderInfo AppWidgetProvider(extends BroadcastReceiver)
2.相关类介绍
2.1.AppWidgetService.java
这是widget framework的核心类,是系统service之一,它承担着所有widget的
管理工作。Widget安装,删除,更新等等都需要经过AppWidgetService.它是开机就启动的.
在开机过程中,java层进程System Server启动后(这个进程管理着所有的系统service, 例如
activity manager service, windows manager service, power manager service等),会创建
AppWdigetService的实例,并调用它的SystemReady()方法,在这个方法里,它做了三件事:
1)遍历所有的安装包,找到符合条件ACTION=ACTION_APPWIDGET_UPDATE和<meta-data android:name="android.appwidget.provider"/>的intent receiver,解析相关信息,保存到本地数据成员中。
2)读取本地文件数据:/data/system/appwidgets.xml,所有已安装到桌面的widget的信息都保存在这个文件里。读出来,也保存到本地数据成员里。
3)注册了三个消息:ACTION_BOOT_COMPLETED(系统启动到桌面就会发送此消息),ACTION_PACKAGE_ADDED(有新APK包安装到系统),ACTION_PACKAGE_REMOVED(有APK包被删除)。当系统启动到桌面后,AppWidgetService接收到了ACTION_BOOT_COMPLETED消息,它会去检查本地数据成员,如果有已经安装到桌面的widget,它会上发ACTION_APPWIDGET_ENABLED和ACTION_APPWIDGET_UPDATE消息。如果有widget设置了updatePeriodMillis的属性,它就会开始计时(这个是通过AlarmManager来实现的),到时间时,就会再次上发ACTION_APPWIDGET_UPDATE消息。
2017-03-21
展开全部
当然是可以添加的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询