Android基础之AppWidgetProvider


2011-04-23 14:40:39

Android 的AppWidgetProvider 提供的可在HOME显示的插件,基础用法相对较简单

下面来看看编写步骤 :

1.为AppWidget提供一个元文件布局AppWidgetProviderInfo,用来显示widget的界面,

2.创建一个WidgetProvider继承自AppWidgetProvider;

3.为 WidgetProvider创建一个布局文件也可以直接用main.xml;

4.注册Manifest.xml 这个很重要一会下面会讲到。

代码部分:

1)提供 AppWidgetProviderInfo的布局文件 res/xml/appwidget_info.xml

<?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="100dp" android:minHeight="40dp" //设置更新时间 毫秒单位 android:updatePeriodMillis="86400000" //引用的布局文件 android:initialLayout="@layout/widget_layout" > </appwidget-provider>

2) WidgetProvider .java

package com.yin; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.content.Intent; public class WidgetProvider extends AppWidgetProvider{ //没接收一次广播消息就调用一次,使用频繁 public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub System.out.println("recrive"); super.onReceive(context, intent); } //每次更新都调用一次该方法,使用频繁 public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // TODO Auto-generated method stub System.out.println("update--->"); super.onUpdate(context, appWidgetManager, appWidgetIds); } //没删除一个就调用一次 public void onDeleted(Context context, int[] appWidgetIds) { // TODO Auto-generated method stub System.out.println("Deleted"); super.onDeleted(context, appWidgetIds); } //当该Widget第一次添加到桌面是调用该方法,可添加多次但只第一次调用 public void onEnabled(Context context) { // TODO Auto-generated method stub System.out.println("OnEnable"); super.onEnabled(context); } //当最后一个该Widget删除是调用该方法,注意是最后一个 public void onDisabled(Context context) { // TODO Auto-generated method stub System.out.println("onDisable"); super.onDisabled(context); } }

3)为Widget创建一个显示用的布局文件

widget_layout.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:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#ff00ff" android:background="#0fffff" android:text="MyFirstAppWidget" /> </LinearLayout>

这个很简单 不解释了

4) AndroidManifest.xml 这个就很重要了

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.yin" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".AppWidget" //Avtivityd 的文件名 在这个例子中没有用上 不用看 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=".WidgetProvider"> <meta-data android:name="android.appwidget.provider" //Android系统定义的格式,不能更改,不能打错 android:resource="@xml/appwidget_info"></meta-data> //引用的在res/xml下创建的文件 <intent-filter> //这个是接收广播时的过滤器 Android定义的 <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action> </intent-filter> </receiver> </application> </manifest>

这样 就做好了一个可添加到桌面的Widget了 如图

注意这是一个Widget虽然很丑,不过没办法,本人在学校初接触Android,水平不高,呵呵



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值