私は次のものが欲しい:
- AlarmManager は、真夜中に AppWidgetProvider に毎日のインテントを正確に送信します。
- アラームはデバイスを起動する必要があります。
これが私がやった方法です:
私の AppWidgetProvider サブクラスでは:
@Override
public void onEnabled(Context context) {
super.onEnabled(context);
Log.d(LOG_TAG, "Widget Provider enabled. Starting timer");
//Setting the Calender object to midnight time.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 0);
calendar.add(Calendar.MINUTE, 0);
calendar.add(Calendar.HOUR, 0);
//The fired Intent
Intent intent = new Intent(CLOCK_WIDGET_UPDATE); //custom intent name
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), 1000*60*60*24, pendingIntent);
}
私は正しくやったと思いますが、このコードは動作しません!
テストするために、1000*60*60*24 を 10000 (10 秒) に変更し、ウィジェットの textView を乱数で更新しました。乱数は変更されませんでした。
どんな助けでも大歓迎です!