展会信息港展会大全

Android AppWidgetProvider
来源:互联网   发布日期:2016-01-13 21:39:20   浏览:1562次  

导读:Android AppWidgetProvider的用法相对较简单,AppWidgetProvider提供可在HOME显示的插件。下面来看看编写步骤:1、为AppWidget提供一个元文件布局AppWidgetProviderInfo,用来显示widget的界面。2、创建一个继承......

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

下面来看看编写步骤:

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

2、创建一个继承自AppWidgetProvider的WidgetProvider。

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,水平不高,呵呵

赞助本站

人工智能实验室

相关热词: AppWidgetProvider

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港