Android: por que a notificação de alarme parou após a reinicialização do sistema
Estou desenvolvendo um aplicativo Android que deve disparar um alarme cinco vezes por dia:
- os horários de cada dia não são constantes
- depois que o alarme for disparado, agendarei o próximo alarm
Meu problema é: a notificação de alarme funciona por 1 dia e depois para e também quando o dispositivo é reiniciado duas vezes, a notificação não funciona, agora não, se houver outra maneira de fazer isso, qualquer ajuda será muito apreciada !
Código: Eu tenho essa função para chamar o receptor de transmissão
public static void Start_Notifying(Context context){
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
cal.add(Calendar.HOUR_OF_DAY,hour);
cal.add(Calendar.MINUTE, min);
Intent intent = new Intent(context, OnetimeAlarmReceiver.class);
intent.setAction("START_NOTIFYING");
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, notify.REQUEST_CODE, intent,0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis() , pendingIntent);
SaveAlarmManager(alarmManager, pendingIntent);
}
o código de oneTimeAlarmReciever
public void onReceive(Context context, Intent intent) {
main_menu.con = context;
Notification notifyDetails;
NotificationManager nm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
notifyDetails = new Notification(R.drawable.icon,s1,System.currentTimeMillis());
PendingIntent pendingIntent = PendingIntent.getActivity(context, REQUEST_CODE, new Intent(context, prayertimes.class), 0);
notifyDetails.setLatestEventInfo(context,s2+ notify.prayName , s3, pendingIntent);
notifyDetails.sound=Uri.parse(PlaySound());
nm.notify(NOTIFICATION_ID, notifyDetails);
main_menu.notify_me();
}
O código de notify_me ()
static void notify_me() {
hour =pTime.num1;
min =pTime.num2;
Start_Notifying(con);
}
No arquivo de manifesto
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
<receiver class =".OnetimeAlarmReceiver" android:name="OnetimeAlarmReceiver">
<intent-filter>
<action android:name="START_NOTIFYING" />
<action android:name="android.intent.action.BOOT_COMPLETED"> </action>
<data android:mimeType="audio/ogg" />
</intent-filter>
</receiver>