1.创建一个app widget需要
AppWidgetProviderInfo object: 用于描述AppWidget的元数据,比如AppWidget的layout,更新频率,AppWidgetProvider等。
AppWidgetProvider class implementation: 基于broadcaster event定义一些程序员可以和AppWidget交互的基本方法,当AppWidget发生更新,删除等操作时候,能够收到相应的广播信息。
View layout
App Widget configuration Activity
2.
(1) 在manifest文件中定义
<!--Specifies the AppWidgetProvider used by the App Widget -->
<receiver android:name="ExampleAppWidgetProvider" >
<!--specifies that the AppWidgetProvider accepts the ACTION_APPWIDGET_UPDATE broadcast.
This is the only broadcast that you must explicitly declare. The AppWidgetManager
automatically sends all other App Widget broadcasts to the AppWidgetProvider
as necessary. -->
<intent-filter>
<!--This is the only broadcast that you must explicitly declare.
The AppWidgetManager automatically sends all other App Widget broadcasts
to the AppWidgetProvider as necessary. -->
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
<!--Specifies the AppWidgetProviderInfo resource location -->
android:resource="@xml/example_appwidget_info" />
</receiver>
(2) 创建AppWidgetProviderInfo object.
Define the AppWidgetProviderInfo object in an XML resource using a single <appwidget-provider> element and save it in the project's res/xml/ folder.
(3) 创建layout.
(4) AppWidgetProvider类
首先要确定AppWidgetProvider类已经在manifest文件中声明过了。
onUpdate()是AppWidgetProvider最重要的一个类。只要用户不用configration activity, 只要widget被添加到宿主后, 这个方法就会被调用到。
当widget需要和用户发生交互事件的时候,需要在这个方法里注册handler. 如果用户不需要创建数据库或者是任何清理工作,这个方法很可能就是我们需要的唯一方法。
(5) AppWidget Configration Activity
当用户加载一个AppWidget的时候需要对Appwidet进行诸如颜色,大小,更新时间等的个性设置的时候,就需要AppWidget Configration Activity。
---未完待续。