首页编程updateperiodmillis android updateconfiguration 什么时候起作用

updateperiodmillis android updateconfiguration 什么时候起作用

编程之家2023-11-04176次浏览

这篇文章给大家聊聊关于updateperiodmillis,以及android updateconfiguration 什么时候起作用对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

如何使用appwidget实现进程常驻

本篇打算从以下几个点来介绍AppWidget:

1.如何创建一个简单的AppWidget

2.如何使得AppWidget与客户端程序交互

创建简单的AppWidget

在介绍之前给大家看一下程序运行的最后结果和项目结构图,以便大家有个整体的印象。

运行结果图:

项目结构图:

第一步:

首先在res文件夹下新建一个名字为xml的文件夹,然后在xml目录下创建一个名为appwidget01的xml文件(如上图所示)。这个appwidget01中的内容如下:

<?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/appwidgetlayout"

>

</appwidget-provider>

这个xml是用来描述你所要创建的appWidget的一些描述信息的,比如高度、宽度、刷新间隔、布局文件等等。仅仅这个描述文件还不够,我们看到的appWidget可都是有界面元素的呀,比如说文本,图片,按钮等等,这些东西的定义都需要放到layout文件夹下面。这个文件就是上面代码中写到的那个appwidgetlayout。

第二步:

在layout文件夹下面新建一个appwidgetlayout.xml文件,在这个文件中描述了appWidget的控件和布局等等信息,就和我们平常创建的一个activity的布局文件没什么两样,因为只是简单的演示,所以仅用一个文本和一个按钮。xml的内容如下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent" android:layout_height="fill_parent">

<TextView android:id="@+id/txtapp" android:text="test" android:layout_width="wrap_content"

android:layout_height="wrap_content" android:background="#ffffff"></TextView>

<Button android:id="@+id/btnSend" android:layout_width="wrap_content"

android:layout_height="wrap_content" android:text="Send"></Button>

</LinearLayout>

第三步:

既然appWidget中存在按钮等等控件,那么就肯定少不了处理这些控件事件的处理代码啦。这些代码被放在一个继承于AppWidgetProvider的类中,在本例子中我新建了一个AppWidget的类,该类继承于AppWidgetProvider,以后所有的AppWidget上面的控件事件都会在这个类中处理。看一下类的内容:

public class AppWidget extends AppWidgetProvider

{

private final String broadCastString="com.qlf.appWidgetUpdate";

/**

*删除一个AppWidget时调用

**/

@Override

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

{

super.onDeleted(context, appWidgetIds);

}

/**

*最后一个appWidget被删除时调用

**/

@Override

public void onDisabled(Context context)

{

super.onDisabled(context);

}

/**

* AppWidget的实例第一次被创建时调用

**/

@Override

public void onEnabled(Context context)

{

super.onEnabled(context);

}

/**

*接受广播事件

**/

@Override

public void onReceive(Context context, Intent intent)

{

super.onReceive(context, intent);

}

/**

*到达指定的更新时间或者当用户向桌面添加AppWidget时被调用

**/

@Override

public void onUpdate(Context context, AppWidgetManager appWidgetManager,

int[] appWidgetIds)

{

}

}

各个方法的作用大家一看上面的注释就明白了。我们暂时不需要实现里面的方法。

第四步:

在AndroidManifest.xml中定义一些创建AppWidget必要的东西,先看代码:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.qlf.widget" android:versionCode="1" android:versionName="1.0">

<application android:icon="@drawable/icon" android:label="@string/app_name">

<activity android:name=".MainActivity" 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="AppWidget">

<intent-filter>

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

</intent-filter>

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

android:resource="@xml/appwidget01"/>

</receiver>

</application>

<uses-sdk android:minSdkVersion="8"/>

</manifest>

可以看到我们在配置文件里面定义了一个receiver,他的名字是上面创建处理控件代码的那个类,下面那个intent-filter中的action是系统自带的用于更新所有appwidget的广播动作。然后meta-data标签是一个描述我们创建appwidget的元数据,那个android:name="android.appwidget.provider"是固定的,android:resource="@xml/appwidget01"指定创建的appWidget的描述信息的位置。这样程序就知道到哪里去初始化这些appWidget啦。

经过上面四个步骤,我想您已经能够成功在桌面上添加小工具了,效果就是我们最前面发出的样子。

android updateconfiguration 什么时候起作用

清单文件即AndroidManifest文件,AndroidManifest.xml是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services,等等),他们各自的实现类,各种能被处理的数据和启动位置。除了能声明程序中的Activities, ContentProviders, Services,和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试)。

AppWidget就是HomeScreen上显示的小部件,提供直观的交互操作。通过在HomeScreen中长按,在弹出的对话框中选择Widget部件来进行创建,长按部件后并拖动到垃圾箱里进行删除。同一个Widget部件可以同时创建多个。

AppWidget的实现主要涉及到以下类:

AppWidgetProvider

RemoteViews

AppWidgetManager

1.首先需要提供一个定义了Widget界面布局的XML文件(位于res/layout/..),需要注意的是使用的组件必须是RemoteViews所支持的,目前原生API中支持的组件如下:

FrameLayout

LinearLayout

RelativeLayout

AnalogClock

Button

Chronmeter

ImageButton

ImageView

ProgressBar

TextView

*如果使用了除此之外的组件,则在Widget创建时会导致android.view.InflateExceptionn异常。

2.然后需要提供一个xml文件来定义Widget的基本属性,放置到res/xml/..目录下。

如果使用的是Eclipse可按如下操作:

1)在res/目录下创建xml/目录

2)创建xml文件(名字可任意),选择类型为AppWidgetProvider

3)在弹出的便捷界面进行参数设置

主要设置的参数如下:

minWidth:定义Wdiget组件的宽度

minHeight:定义Wdiget组件的高度

updatePeriodMillis:更新的时间周期

initialLayout: Widget的布局文件

configure:如果需要在启动前先启动一个Activity进行设置,在这里给出Activity的完整类名(后面会说到,与一般Activity的实现有些许差别)

3. xml都定义好后,接下来就是创建一个继承自AppWidgetProvider的子类,AppWidgetProvider实际上就是一个BroadcastReceiver,里面提供了以下函数:

onReceive(Context, Intent)

onUpdate(Context, AppWidgetManager, int[] appWidgetIds)

onEnabled(Context)

onDeleted(Context, int[] appWidgetIds)

onDisabled(Context)

可通过重写以上函数来监听Widget状态的变化并进行相应的处理。

4.最后,更新AndroidManifest.xml。

AppWidgetProvider对应一个receiver属性:

Xml代码

<receiver android:name="MyWidgetProvider">

<intent-filter>

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

<meta-data android:resource="@xml/widget_property" android:name="android.appwidget.provider"/>

</receiver>

5.提供Configuration Activity

Configuration Activity是一个在Widget启动前先启动的Activity,方便用户对Widget的属性进行设置。

需要注意的是,如果设置了Configure属性,则必须在指定的Activity中进行如下处理:

1.在onCreate中setContentView()函数前添加setResult(RESULT_CANCLE),这样如果在Activity初始化完成前按下了BACK按键,则Widget不会启动;

2.在setContentView()函数之后(不一定要在onCreate中,在Activity退出前即可),添加如下设置以指定需要启动的Widget:

Android桌面小部件AppWidget开发

在Android我们经常可以看到各种桌面小部件,比如时钟、天气、音乐播放器等等。我们可以使用AppWidgetProvider来实现小部件的开发。

开发一个桌面小部件的步骤:

在res/layout/下新建一个布局文件,名称和内容自定义,看你想把小工具做成什么样。需要注意的是系统默认的小工具布局中只支持以下这些标签,如果用了列表以外的标签,会导致小工具加载错误:

比如,我们创建了一个名为widget_layout.xml的布局文件:

定义小部件的配置信息需要在res目录下新建一个xml目录,然后在res/xml/目录下创建一个配置文件,配置文件名称随意。新建app_widget_provider_info.xml:

上面的参数意义很明确,initialLayout指小部件的初始化布局,一般与最终布局相同;minHeight和minWidth定义了小部件的最小宽高,与小部件所占网格大小有关;previewImage可以指定在添加小部件时看到的预览图;updatePeriodMillis指定了小部件的自动更新周期,单位为毫秒。

其中minHeight和minWidth的定义可以参考官方文档: https://developer.android.com/guide/practices/ui_guidelines/widget_design.html#design

OK,小部件完成了,运行一下看看效果:

关于updateperiodmillis和android updateconfiguration 什么时候起作用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

成都网页制作 成都网站制作多少钱房产中介网站模板(58二手房中介服务介绍模板怎么写)