展会信息港展会大全

android之appwidget(一)简单appwidget
来源:互联网   发布日期:2015-10-03 10:39:59   浏览:1696次  

导读:什么是appwidget? 即application widget。 应用程序控件,就是在桌面显示的控件。 AppWidget就是我们平常在桌面上见到的那种一个个的小控件,利用这个小控件可以给用户提供一些方便快捷的操作。本次创建一个......

什么是appwidget? 即application widget。 应用程序控件,就是在桌面显示的控件。 AppWidget就是我们平常在桌面上见到的那种一个个的小控件,利用这个小控件可以给用户提供一些方便快捷的操作。

本次创建一个简单的appwidget。

相关概念:

1、AppWidgetProviderInfo对象:它是一个xml文件,为appWidget提供元数据,包括布局,更新频率等数据。这个对象定义在xml中。

2、AppWidgetProvider: 定义了appwidget的基本生命周期函数。

不多说,一切尽在代码:

1、在layout中新建一个appwidgetlayout.xml文件。

Java代码

<?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:id="@+id/textview"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

</LinearLayout

<?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:id="@+id/textview"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

</LinearLayout

没什么多说的,只是一个textview。这个是我们的应用程序在桌面的控件。

2、在res中新建一个xml包,在这个包中新建一个appwidget_info.xml文件。

Java代码

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"

android:minWidth="294dp"

android:minHeight="72dp"

android:updatePeriodMillis="86400000"

android:initialLayout="@layout/appwidgetlayout"

/>

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"

android:minWidth="294dp"

android:minHeight="72dp"

android:updatePeriodMillis="86400000"

android:initialLayout="@layout/appwidgetlayout"

/>

这个xml为appwidget提供元数据,这个是在桌面的布局,而这个layout(appwidgetlayout)为在appwidget中控件的布局。

3、在包下新建我们的provider,他继承了AppWidgetProvider,我们只需要对它的生命周期进行处理就行了。

Java代码

public class AppWidgetprovider extends AppWidgetProvider {

@Override

public void onDeleted(Context context, int[] appWidgetIds) {

// TODO Auto-generated method stub

System.out.println("onDeleted");

super.onDeleted(context, appWidgetIds);

}

@Override

public void onDisabled(Context context) {

// TODO Auto-generated method stub

System.out.println("onDisable");

super.onDisabled(context);

}

@Override

public void onEnabled(Context context) {

// TODO Auto-generated method stub

System.out.println("onEnable");

super.onEnabled(context);

}

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

System.out.println("onreceive");

super.onReceive(context, intent);

}

@Override

public void onUpdate(Context context, AppWidgetManager appWidgetManager,

int[] appWidgetIds) {

// TODO Auto-generated method stub

System.out.println("onUpdate");

super.onUpdate(context, appWidgetManager, appWidgetIds);

}

}

public class AppWidgetprovider extends AppWidgetProvider {

@Override

public void onDeleted(Context context, int[] appWidgetIds) {

// TODO Auto-generated method stub

System.out.println("onDeleted");

super.onDeleted(context, appWidgetIds);

}

@Override

public void onDisabled(Context context) {

// TODO Auto-generated method stub

System.out.println("onDisable");

super.onDisabled(context);

}

@Override

public void onEnabled(Context context) {

// TODO Auto-generated method stub

System.out.println("onEnable");

super.onEnabled(context);

}

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

System.out.println("onreceive");

super.onReceive(context, intent);

}

@Override

public void onUpdate(Context context, AppWidgetManager appWidgetManager,

int[] appWidgetIds) {

// TODO Auto-generated method stub

System.out.println("onUpdate");

super.onUpdate(context, appWidgetManager, appWidgetIds);

}

}

4、在AndroidManifest.xml中进行配置,由于这个appwidget使用的是广播机制,我们需要在AndroidManifest.xml中进行如下配置:

Java代码

<receiver android:name="AppWidgetprovider">

<intent-filter >

<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>

</intent-filter>

<meta-data android:name="android.appwidget.provider"

android:resource="@xml/appwidget_info"

/>

</receiver>

<receiver android:name="AppWidgetprovider">

<intent-filter >

<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>

</intent-filter>

<meta-data android:name="android.appwidget.provider"

android:resource="@xml/appwidget_info"

/>

</receiver>

通过过滤器我们截取APPWIDGET_UPDATE这个action,然后对provider进行资源配置,对应的刚刚那个xml中的文件。

赞助本站

人工智能实验室

相关热词: appwidget

AiLab云推荐
展开

热门栏目HotCates

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