ウィジェットのアラームを設定するために使用したコードは次のとおりです。
private static void setAlarm(Context context) {
Intent myIntent = new Intent(context, Widget.class);
myIntent.setAction(AUTO_UPDATE);
PendingIntent pendingIntent =
PendingIntent.getBroadcast(context, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Service.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 8);
alarmManager.setInexactRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), 8000,
pendingIntent);
}
しかし問題は、スリープモードでonReceive()
もインテントによってトリガーされることです。
setInexactRepeating
の代わりに使用した後setRepeating
は、スリープ モードで通話間の遅延が最大 1 分増加しますが、それでもバッテリーを消費します。