AppWidget 如android桌面上的时钟

来源:互联网 发布:戏子家事天下知 出处 编辑:程序博客网 时间:2024/05/21 09:38

一、
1、App widget 是在home桌面的一个空间,比如时钟,播放器播放时小图标可以点击下一首等那个。

2、AppWidgetProviderInfo 对象: 为App Widget 提供元数据,包括布局,更新频率等数据,这个对象被定义在xml文件当中。

3、AppWidgetProvider : 定义一个App Widget 的基本生命周期函数。

二、创建App Widget步骤:
   1、定义AppWidgetProviderInfo : 在res/xml文件夹中定义 example_appwidget_info.xml文件
      android:updatePeriodMills="86400000"  定义更新的时间
   

  2.在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>



   3. 实现AppWidgetProvider:
      upDatate:在到达指定更新时间之后或者当用户向桌面添加App Widget时调用。
      onDeleted:当App widget 被删除时被调用。
      onEnabled: 当一个App widget的实例第一次被创建时,调用。
      onDisabled: 当最后一个Appp Widget实例被删除后,会调用。
      onReveice: 接收广播事件。

例如:

1. 在res下创建xml文件夹,在里面创建example_appwidget_info.xml文件:

<span style="font-size:14px;"><appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"    android:minWidth="294dp"    android:minHeight="72dp"    android:updatePeriodMillis="86400000"    android:initialLayout="@layout/example_appwidget" ></appwidget-provider></span><pre class="java" name="code"> 

 

2. 在AndroidManifest.xm加入:

<pre class="html" name="code"> <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>

 

 

3.编写代码:

package mars.appwidget01;import android.appwidget.AppWidgetManager;import android.appwidget.AppWidgetProvider;import android.content.Context;public class ExampleAppWidgetProvider extends AppWidgetProvider{@Overridepublic void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {System.out.println("onupdate");super.onUpdate(context, appWidgetManager, appWidgetIds);}@Overridepublic void onDeleted(Context context, int[] appWidgetIds) {System.out.println("onDeleted");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);}}


 

 

 

 

1 0
原创粉丝点击