3
我一直在關注製作Android應用小部件的教程,並且遇到了一些麻煩。本教程促使我創建這個代碼:應用小部件更新TextView
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int [] appWidgetIds) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new MyTime(context, appWidgetManager), 1, 1000);
}
private class MyTime extends TimerTask {
RemoteViews remoteViews;
AppWidgetManager appWidgetManager;
ComponentName thisWidget;
DateFormat format = SimpleDateFormat.getTimeInstance(SimpleDateFormat.MEDIUM, Locale.getDefault());
public MyTime(Context context, AppWidgetManager appWidgetManager) {
this.appWidgetManager = appWidgetManager;
remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
thisWidget = new ComponentName(context, FlipWidget.class);
}
@Override
public void run() {
remoteViews.setTextViewText(R.id.widget_text, "Time: "+format.format(new Date()));
appWidgetManager.updateAppWidget(thisWidget, remoteViews);
}
}
但似乎run方法永遠不會被調用,因爲TextView的永遠不會改變。感謝您的幫助,我很樂意處理App Widgets。
尼克
好的,謝謝你的幫助。雖然時鐘需要每秒更新一次,但AlarmManager能否讓我有效地做到這一點? – Nick 2010-12-07 17:55:50