App Widgets 窗口小部件
??? App Widgets是微小的应用程序视图,可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新。
??? 相关的基本概念:
???? AppWidgetProviderInfo
为App Widgets提供元数据,包括布局、更新频率等。被定义在xml文件中。 ???? AppWidgetProvider
定义了App Widgets基本生命周期函数。一 创建一个App Widget的步骤
? 1.在res/xml/文件夹中定义一个example_appwidget_info.xml
??
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="294dp" android:minHeight="72dp" android:updatePeriodMillis="8640000" android:initialLayout="@layout/example_appwidget"></appwidget-provider>
?
?
?
?
2.为App Widget指定样式和布局
?在layout下定义一个新的布局文件example_appwidget.xml
?
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/widgetTextId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="firstWidgetText" android:background="#000000" /> </LinearLayout>
?
?
?
?3实现AppWidgetProvider
? onUpdate:在道道指定的更新时间之后或者当用户向桌面添加App Widget时会调用该方法。
?? public class ExampleAppWidgetProvider extends AppWidgetProvider{@Overridepublic void onDeleted(Context context, int[] appWidgetIds) {System.out.println("ondelete-");super.onDeleted(context, appWidgetIds);}@Overridepublic void onDisabled(Context context) {System.out.println("onDisabled-");super.onDisabled(context);}@Overridepublic void onEnabled(Context context) {System.out.println("onEnabled-");super.onEnabled(context);}@Overridepublic void onReceive(Context context, Intent intent) {//String action=intent.getAction();System.out.println("onReceive-");super.onReceive(context, intent);}@Overridepublic void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {System.out.println("onupdate");super.onUpdate(context, appWidgetManager, appWidgetIds);}}
?
?
4.在AndroidManifest.xml 声明
?
<receiver android:name="ExampleAppWidgetProvider"><intent-filter><action android:name="android.appwidget.action.APPWIDGET_UPDATE" /></intent-filter><meta-data android:name="android.appwidget.provider"android:resource="@xml/example_appwidget_info" /></receiver>
?
5 运行项目,在模拟器桌面长按左键出现
?
?
?
选中widgets,
?
?选中应用appwidget01,出现
?
?第一个测试小例子就运行成功了。嘿嘿 谢谢mars老师。
?