AlarmManager
ウィジェットの更新トランザクションに使用しています。5、10、15、30 分など、さまざまな間隔値があります。
呼び方AlarmManager
:
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyService.class);
pi = PendingIntent.getService(context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
// Interval value, default 600 (600*1000 -> 10 min)
Long repeat = Long.parseLong(prefs.getString("update_preference", "600"));
// Set the manager
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis(), 1000*repeat, pi);
したがって、ユーザーが 5 分または 10 分を選択しても問題ありません。しかし、そうでない場合、つまり、ユーザーは 15、30、60 分などのより大きな値を選択すると、MyService
すぐに機能しなくなりsetRepetaing
ます。
違いや間違いは何ですか?
編集: 30 分未満ですぐに動作しますが、一意のリクエスト コードを使用して 30 分以上動作するようになりました。