AppWidget 如android桌面上的时钟
一、
1、App widget 是在home桌面的一个空间,比如时钟,播放器播放时小图标可以点击下一首等那个。
2、AppWidgetProviderInfo 对象: 为App Widget 提供元数据,包括布局,更新频率等数据,这个对象被定义在xml文件当中。
3、AppWidgetProvider : 定义一个App Widget 的基本生命周期函数。
二、创建App Widget步骤:
1、定义AppWidgetProviderInfo : 在res/xml文件夹中定义 example_appwidget_info.xml文件
android:updatePeriodMills="86400000" 定义更新的时间
2.在AndroidManifest.xml加入
<receiver android:name="ExampleAppWidgetProvider"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/example_appwidget_info" /> </receiver>
3. 实现AppWidgetProvider:
upDatate:在到达指定更新时间之后或者当用户向桌面添加App Widget时调用。
onDeleted:当App widget 被删除时被调用。
onEnabled: 当一个App widget的实例第一次被创建时,调用。
onDisabled: 当最后一个Appp Widget实例被删除后,会调用。
onReveice: 接收广播事件。
例如:
1. 在res下创建xml文件夹,在里面创建example_appwidget_info.xml文件:
<span style="font-size:14px;"><appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="294dp" android:minHeight="72dp" android:updatePeriodMillis="86400000" android:initialLayout="@layout/example_appwidget" > </appwidget-provider> </span><pre class="java" name="code">
2. 在AndroidManifest.xm加入:
<pre class="html" name="code"> <receiver android:name="ExampleAppWidgetProvider"><intent-filter><action android:name="android.appwidget.action.APPWIDGET_UPDATE" /></intent-filter><meta-data android:name="android.appwidget.provider"android:resource="@xml/example_appwidget_info" /></receiver>
3.编写代码:
package mars.appwidget01; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; public class ExampleAppWidgetProvider extends AppWidgetProvider{ @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { System.out.println("onupdate"); super.onUpdate(context, appWidgetManager, appWidgetIds); } @Override public void onDeleted(Context context, int[] appWidgetIds) { System.out.println("onDeleted"); super.onDeleted(context, appWidgetIds); } @Override public void onDisabled(Context context) { System.out.println("onDisabled"); super.onDisabled(context); } @Override public void onEnabled(Context context) { System.out.println("onEnabled"); super.onEnabled(context); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。