Aquí está el código que he utilizado para programar una alarma para mi aparato:PendingIntent programado utilizando el tipo de AlarmManager.RTC todavía se invoca en el modo de suspensión
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);
}
pero el problema es que incluso en el modo de reposo, onReceive()
todavía se desencadena por la intención.
Aunque después de usar setInexactRepeating
en lugar de setRepeating
, las demoras entre llamadas se incrementan hasta 1 minuto en modo de suspensión, pero eso aún consume batería.
¿cuál es tu pregunta? – HitOdessit
'AlarmManager.RTC' no debe invocar el dispositivo en modo de suspensión. ¿Qué debo hacer para evitar invocar? – SAbbasizadeh
¿Qué es Android OS versiones y dispositivos/emuladores que está probando su código? – HitOdessit