模拟器效果图
AppWidgetProvider
onUpdate:在到达指定更新时间后或者向桌面添加App Widget时会调用该方法.
onDeleted:当App Widget被删除, 会调用该方法
onEnabled:当一个App Widget的实例第一次被创建, 会调用该方法
onDisabled:当最后一个App Widget实例被删除后, 会调用该方法
onRecevie: 接收广播事件
首先在res下面新建一个文件夹(xml). 在文件夹下新建 example_widget_info.xml
代码:
在layout文件夹下面新建一个 example_widget.xml
代码:
AndroidManifest.xml布局文件
代码:
ExampleAppWidgetProvider.java代码
PS: 在模拟器中图片的界面上长按左键, 出现的菜单上选择Widget, 最后选择自己写得程序名字就好, 比如这个Appwidget

AppWidgetProvider
onUpdate:在到达指定更新时间后或者向桌面添加App Widget时会调用该方法.
onDeleted:当App Widget被删除, 会调用该方法
onEnabled:当一个App Widget的实例第一次被创建, 会调用该方法
onDisabled:当最后一个App Widget实例被删除后, 会调用该方法
onRecevie: 接收广播事件
首先在res下面新建一个文件夹(xml). 在文件夹下新建 example_widget_info.xml
代码:
<?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="294dp" android:minHeight="72dp" android:updatePeriodMillis="86400000" android:initialLayout="@layout/example_widget"> </appwidget-provider>
在layout文件夹下面新建一个 example_widget.xml
代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="firstWidgetText" android:background="#000000" android:id="@+id/widgetTextId" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView> </LinearLayout>
AndroidManifest.xml布局文件
代码:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.cn" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".AppwidgetActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="ExampleAppWidgetProvider"> <!-- 指定广播接收 --> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action> </intent-filter> <!-- appwidget的源文件 --> <meta-data android:name="android.appwidget.provider" android:resource="@xml/example_appwidget_info"></meta-data> </receiver> </application> </manifest>
ExampleAppWidgetProvider.java代码
package com.cn;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
public class ExampleAppWidgetProvider extends AppWidgetProvider {
@Override
public void onDeleted(Context context, int[] appWidgetIds) {
System.out.println("onDeleted");
super.onDeleted(context, appWidgetIds);
}
@Override
public void onDisabled(Context context) {
System.out.println("onDisabled");
super.onDisabled(context);
}
@Override
public void onEnabled(Context context) {
System.out.println("onEnabled");
super.onEnabled(context);
}
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("onReceive");
super.onReceive(context, intent);
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
System.out.println("onUpdate");
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
}
PS: 在模拟器中图片的界面上长按左键, 出现的菜单上选择Widget, 最后选择自己写得程序名字就好, 比如这个Appwidget