一、App Widget定义
App Widget是Application Widget的缩写,特指在android手机桌面上放置的控件。比如时钟等。另外,App Widget和我们自己写的程序并不是运行在同一进程当中的。在桌面长按就可以向桌面添加各种控件:

二、App Widget相关的基本概念
1.AppWidgetProviderInfo对象:为App Widget提供元数据,包括布局,更新频率等数据,该对象定义在XML文件当中。
2.AppWidgetProvider:定义了App Widget的基本声明周期函数。
三、创建一个App Widget的步骤

1.定义AppWidgetProviderInfo:
在res/xml文件夹中定义一个名为appwidger_info.xml的文件:
android:initialLayout:初始化布局文件
android:updatePeriodMillis:更新时间
<?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="280dp" android:minHeight="70dp" android:updatePeriodMillis="8640000" android:initialLayout="@layout/appwidget"/>
2.为AppWidget指定样式和布局:
Res/layout文件夹下定义一个新的布局文件appwidget.xml,里面可以添加一些控件,用于控制在桌面显示的样式,给AppWidgetProviderInfo这个对象提供数据。其中image是一张小鸟的png图片。
<?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"
>
<ImageButton
android:id="@+id/widgetTextId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image"
android:background="#00000000"/>
</LinearLayout>
3.实现AppWidgetProvider:
onUpdate:在到达指定的更新时间之后或者当用户想桌面添加AppWidget时会调用该方法;
onDeleted:当App Widget被删除时,会调用该方法;
onEnabled:当一个AppWidget的实例第一次被创建时,会调用该方法;
onDisabled:当最后一个App Widget实例被删除后,会调用;
onReceive:接收广播事件。请求分发。
package com.android.activity;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
public class AppWidgetProviderTest extends AppWidgetProvider{
@Override
public void onUpdate(Context context, AppWidgetManager
appWidgetManager, int[] appWidgetIds) {
System.out.println("AppWidgetProvider --> onUpdate");
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
@Override
public void onDeleted(Context context, int[] appWidgetIds) {
System.out.println("AppWidgetProvider --> onDeleted");
super.onDeleted(context, appWidgetIds);
}
@Override
public void onDisabled(Context context) {
System.out.println("AppWidgetProvider --> onDisabled");
super.onDisabled(context);
}
@Override
public void onEnabled(Context context) {
System.out.println("AppWidgetProvider --> onEnabled");
super.onEnabled(context);
}
}
运行结果:

添加后的结果:

本文深入探讨了Android系统中的AppWidget组件,从定义、基本概念到创建步骤进行了详细解析,并通过实例展示了如何在Android应用中集成AppWidget,提供桌面交互体验。
486

被折叠的 条评论
为什么被折叠?



