`

App Widgets 窗口小部件

 
阅读更多

    App Widgets是微小的应用程序视图,可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新。

    相关的基本概念:

     AppWidgetProviderInfo
为App Widgets提供元数据,包括布局、更新频率等。被定义在xml文件中。
     AppWidgetProvider
定义了App Widgets基本生命周期函数。

一 创建一个App Widget的步骤

  1.在res/xml/文件夹中定义一个example_appwidget_info.xml

  

<appwidget-provider
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:minWidth="294dp"
  android:minHeight="72dp"
  android:updatePeriodMillis="8640000"
  android:initialLayout="@layout/example_appwidget">
</appwidget-provider>

 

 

 

 

2.为App Widget指定样式和布局

 在layout下定义一个新的布局文件example_appwidget.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:id="@+id/widgetTextId"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="firstWidgetText"
  android:background="#000000"  
  />  
</LinearLayout>

 

 

 

 3实现AppWidgetProvider

  onUpdate:在道道指定的更新时间之后或者当用户向桌面添加App Widget时会调用该方法。

   onDeleted:当App Widget被删除时,调用该方法。

   onEnable:当一个App Widget实例第一次被创建时调用该方法。

   onDisable:当最后一个App Widget实例被删除后,调用。

   onReveice:接收广播事件。

 

public class ExampleAppWidgetProvider extends AppWidgetProvider{

	@Override
	public void onDeleted(Context context, int[] appWidgetIds) {
		System.out.println("ondelete-");
		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);
	}

	@Override
	public void onReceive(Context context, Intent intent) {
		//String action=intent.getAction();
		System.out.println("onReceive-");
		super.onReceive(context, intent);
		
	}

	@Override
	public void onUpdate(Context context, AppWidgetManager appWidgetManager,
			int[] appWidgetIds) {
		System.out.println("onupdate");
		super.onUpdate(context, appWidgetManager, appWidgetIds);
	}

}

 

 

4.在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>

 

5 运行项目,在模拟器桌面长按左键出现

 



 

 

选中widgets,

 



 选中应用appwidget01,出现

 



 第一个测试小例子就运行成功了。嘿嘿 谢谢mars老师。

 

  • 大小: 39.6 KB
  • 大小: 26 KB
  • 大小: 24.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics