packagecom.zhy.shortcut;importjava.text.SimpleDateFormat;importjava.util.Date;importandroid.appwidget.AppWidgetManager;importandroid.appwidget.AppWidgetProvider;importandroid.content.Context;importandroid.content.Intent;importandroid.os.Handler;importandroid.os.Message;importandroid.util.Log;importandroid.widget.RemoteViews;publicclassShowTimeNowAppWidgetextendsAppWidgetProvider {privatestaticfinalString TAG="ShowTimeNowAppWidget";
Handler handler;
AppWidgetManager widgetManager;
RemoteViews remoteViews;
Context context;
@OverridepublicvoidonDeleted(Context context,int[] appWidgetIds) {super.onDeleted(context, appWidgetIds);
Log.d(TAG,"---------onDeleted----------");
}
@OverridepublicvoidonDisabled(Context context) {super.onDisabled(context);
Log.d(TAG,"---------onDisabled----------");
}
@OverridepublicvoidonEnabled(Context context) {super.onEnabled(context);
Log.d(TAG,"---------onEnabled----------");
}
@OverridepublicvoidonReceive(Context context, Intent intent) {super.onReceive(context, intent);
Log.d(TAG,"---------onReceive----------");
}
@OverridepublicvoidonUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {super.onUpdate(context, appWidgetManager, appWidgetIds);this.context=context;finalintappWidgetId=appWidgetIds[0];//创建一个RemoteViewsRemoteViews views=newRemoteViews(context.getPackageName(),R.layout.widgetlayout);
widgetManager=appWidgetManager;
remoteViews=views;
handler=newHandler(){
@OverridepublicvoidhandleMessage(Message msg) {super.handleMessage(msg);switch(msg.what) {case0://ComponentName component=new ComponentName(ShowTimeNowAppWidget.this.context, ShowTimeNowAppWidget.class);//更新widget上TextView控件的内容remoteViews.setTextViewText(R.id.widget_time, String.valueOf(msg.obj));//更新widgetwidgetManager.updateAppWidget(appWidgetId, remoteViews);break;default:break;
}
}
};
handler.post(newRunnable() {
@Overridepublicvoidrun() {
Message message=newMessage();
message.what=0;
message.obj=newSimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(newDate());
handler.sendMessage(message);
handler.postDelayed(this,1000);
}
});
Log.d(TAG,"---------onUpdate----------");
}
}