У меня есть список тревог, я поставил первый, и когда звучит сигнал тревоги, я ставлю следующий .... Это работает. Но если приложение находится в фоновом режиме достаточно, сигналы тревоги не работают.AlarmManager в фоновом режиме
Я положил в манифесте:
<receiver android:name=".Alertas_Broadcast" >
<intent-filter>
<action android:name="com.pack.pack.Alertas" />
<category android:name="com.pack.pack" />
</intent-filter>
</receiver>
И вещания и функции, которые ставят новую тревогу:
public class Alertas_Broadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String mensaje = "";
if (extras != null)
mensaje = extras.getString("mensaje");
if (!mensaje.equals("")){
Utilidades.generateNotification(context, mensaje, Main.class, null);
// I put the next alarm calling setNextAlarm with the new parameters
}
}
}
public void setNextAlarm (long milisegundos, String mensaje){
Bundle extras = new Bundle();
extras.putString("mensaje", mensaje);
Intent i = new Intent("com.pack.pack.Alertas");
i.putExtras(extras);
PendingIntent pintent = PendingIntent.getBroadcast(InfoApp.miContexto, (int) milisegundos, i, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarm = (AlarmManager)InfoApp.miContexto.getSystemService(Context.ALARM_SERVICE);
if (milisegundos != 0){
alarm.setRepeating(AlarmManager.RTC_WAKEUP, milisegundos, 99999999, pintent);
}
else{
alarm.cancel(pintent);
}
}
Где проблема? Я предполагаю, что проблема заключается в действии получателя, но я не знаю, как это решить. Я читал, что это не очень хорошая идея, чтобы все время слушалось служение, так как многие ресурсы были потрачены.
Извините за мой английский и благодарю вас!
Я ищу следующую дату в базе данных, и я вызываю setNextAlarm с новыми параметрами. У меня тоже есть разрешение WAKE_LOCK в манифесте, но у меня нет службы – user1852854