widget就是android桌面小空间.

开发流程大概是:

1.在manifest中注册监听widget更新:

 <receiver            android:name="com.widget.WidgetProvider"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />            </intent-filter>            <meta-data                android:name="android.appwidget.provider"                android:resource="@xml/widget_confige" />//配置信息        </receiver>

2.在res/下新建xml文件夹,在其下新建配置文件,名称为widget_confige(任意命)配置信息如下:

<?xml version="1.0" encoding="utf-8"?><appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"    android:initialLayout="@layout/widget_layout"    android:minHeight="72dp"    android:minWidth="72dp"    android:updatePeriodMillis="3000" ></appwidget-provider>

3.新建类继承appwidgetProvider类,重写onupdate方法:

package com.widget;import java.util.Calendar;import com.example.widgetdemo.R;import android.app.PendingIntent;import android.appwidget.AppWidgetManager;import android.appwidget.AppWidgetProvider;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.widget.RemoteViews;//主要继承这个类appwidgetProvider//onupdate方法public class WidgetProvider extends AppWidgetProvider {private String[] Months = { "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月","九月", "十月", "十一月", "十二月" };@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubsuper.onReceive(context, intent);}@Overridepublic void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {// TODO Auto-generated method stubRemoteViews updateViews = buildUpdate(context);appWidgetManager.updateAppWidget(appWidgetIds, updateViews);super.onUpdate(context, appWidgetManager, appWidgetIds);}private RemoteViews buildUpdate(Context context) {RemoteViews updateViews = null;Calendar calendar = Calendar.getInstance();String months = Months[calendar.get(Calendar.MONTH)];//获取widget布局updateViews = new RemoteViews(context.getPackageName(),R.layout.widget_layout);//为布局空间设置内容updateViews.setTextViewText(R.id.Month, months);updateViews.setTextViewText(R.id.Date,String.valueOf(calendar.get(Calendar.DATE)));//点击控件跳转到指定activityIntent i = new Intent();i.setComponent(new ComponentName("com.example.widgetdemo","com.example.widgetdemo.MainActivity"));i.setAction(Intent.ACTION_MAIN);i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);i.addCategory(Intent.CATEGORY_LAUNCHER);PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, i,0);updateViews.setOnClickPendingIntent(R.id.bt, pendingIntent);return updateViews;}}

更多相关文章

  1. Android获得全局进程信息以及进程使用的内存情况
  2. Android 解决布局问题
  3. Android AlertDialog的基本使用方法
  4. Android 获取基站信息
  5. Android之设置横、竖屏方法
  6. android卡片布局CardView

随机推荐

  1. golang判断数组是否为空的方法
  2. golang使用socket中文乱码解决方法
  3. golang 适合开发什么
  4. golang中的map是指针吗
  5. golang 是什么
  6. golang判断map是否存在的方法
  7. golang websocket失败怎么办
  8. golang判断map中key不存在的方法
  9. golang中“var”与“:=”的区别
  10. golang jwt前端怎么验证