我是一個Android小部件的新手。 我的問題是我的小部件沒有更新日期。不在onUpdate in AppWidgetProvider
這是一個只有日期的小部件,沒有更多。
請幫助我,我做錯了什麼。
注意:wedmarter:它看起來像你的文章主要是代碼;請添加更多的細節。但我不知道更多的信息。
package com.android.widget;
import java.util.Timer;
import java.util.TimerTask;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.widget.RemoteViews;
public class MyCalendarWidget extends AppWidgetProvider {
@Override
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;
Fecha fec = new Fecha();
public MyTime(Context context, AppWidgetManager appWidgetManager) {
this.appWidgetManager = appWidgetManager;
remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
thisWidget = new ComponentName(context, MyCalendarWidget.class);
}
@Override
public void run() {
remoteViews.setTextViewText(R.id.widget_textview, fec.DiaActual(false)+"\r\n"
+fec.DiaActual(true) +" de "
+fec.MesActual(false)+" de "
+fec.AñoActualNumerico());
appWidgetManager.updateAppWidget(thisWidget, remoteViews);
}
}
}
謝謝老師非常友好。 請想知道這個項目是否可以使用DEBUG。當我嘗試時它不起作用。 謝謝,雖然它幫助了我很多,因爲我是Android新手,他的解釋非常大。 如果你可以給我發一個ACTION_TIME_TICK這樣的例子的鏈接。我會永遠感激。 –
調試器應該在這個項目上工作。如果您正在設備上運行,請記住使用設置來啓用包括調試功能在內的開發功能。 您可能想要開始一個更簡單的項目,只是使用活動。該項目需要學習小工具,意圖,接收者,服務等。 – Jerry101
網頁搜索將使用ACTION_TIME_TICK找到示例[雖然其中一些設計不好],例如http://kfb-android.blogspot.com/2009/04/registering-for-timetick-after-reboot.html:' registerReceiver(新的DemoReceiver(),新的IntentFilter(Intent.ACTION_TIME_TICK));'它需要在一個服務中繼續在後臺運行。該頁面還討論了重新註冊設備何時重新啓動以及是否需要停止服務。我不認爲清單需要intent-filter中的 「。 –
Jerry101