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。
---未完待续。