Android を使用して時計ウィジェットを作成しています。時計をテストしましたが、ロジックは問題ないようですが、毎分更新する必要があります。
XML で updatePeriodMillis を 60000 に設定しましたが、Android ではこれが 30 分に制限されているため、30 分ごとにしか更新されません。
私はいくつかの調査を行い、呼び出しているメソッドが onUpdate() メソッドを介して渡される AppWidgetManager と AppWidgetId を必要とすることを除いて、Service または AlarmManager が機能した可能性があります。
分単位の更新を機能させるために、2つの(同様の)方法を試しました。
static void updateAppWidget(final Context context, final AppWidgetManager appWidgetManager,
final int appWidgetId) {
final Handler mHandler = new Handler();
TimerTask minuteTask = new TimerTask() {
@Override
public void run() {
mHandler.post(new Runnable() {
@Override
public void run() {
//Do Stuff
});
}
};
timer = new Timer();
// schedule the task to run starting now and then every minute
timer.scheduleAtFixedRate(minuteTask, 0l, 1000 * 60);
}
と:
static void updateAppWidget(final Context context, final AppWidgetManager appWidgetManager,
final int appWidgetId) {
TimerTask minuteTask = new TimerTask() {
@Override
public void run() {
//Do stuff
}
};
timer = new Timer();
// schedule the task to run starting now and then every minute
timer.scheduleAtFixedRate(minuteTask, 0l, 1000 * 60);
}
どんな助けでも大歓迎です。
ありがとう。
編集:デバッグしてこの投稿を作成するのにかかった時間で、アプリをインストールしたまま30分放置しました。onUpdate() が最初に呼び出された 30 分後にタイマーが開始されたように見えますが、最初の 30 分間はまだ機能しません。