Как настроить будильник, который отключится, даже если я перезапущу свой Android-телефон?

Я искал этот сайт и нашел несколько ответов, связанных с настройкой тревоги. Мне удалось настроить будильник.

Что я делаю:

  • Из действия я установил будильник, который в определенное время и дата вызовет приемник
  • Из получателя я звоню в службу
  • Из службы я отправляю уведомление (на панели уведомлений) пользователю.

Мои вопросы:

  1. Я установил будильник через 5 минут. Скажем, я выключил телефон и снова включил его (кажется, он забыл будильник). Как я могу предотвратить это?

  2. Действительно ли мне нужно позвонить службе для отправки уведомлений или я могу сделать это из получателя?

Ниже приведен код, упомянутый в предыдущем разделе (a):

Intent intent = new Intent(MyActivity.this, AlarmReceiver.class); intent.putExtra("alarm_message", "Something"); PendingIntent mAlarmSender; mAlarmSender = PendingIntent.getBroadcast( MyActivity.this, 0, intent, 0); // We want the alarm to go off 30 seconds from now. long alarmTime = dateMgmt.getTimeForAlarm(pickedDate); // Schedule the alarm! AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP, alarmTime + 15000, mAlarmSender); 

Это код, указанный в предыдущем разделе (b):

  @Override public void onReceive(Context context, Intent intent) { try { Bundle bundle = intent.getExtras(); String message = bundle.getString("alarm_message"); Intent newIntent = new Intent(context, MyService.class); context.startService(newIntent); } catch (Exception e) { Toast .makeText( context, "There was an error somewhere, but we still received an alarm", Toast.LENGTH_SHORT).show(); e.printStackTrace(); } 

Этот код, упомянутый в предыдущем разделе (c):

  @Override public void onCreate() { super.onCreate(); nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); showNotification(); } 

Вам не нужно вызывать службу для отправки уведомлений, вы можете сделать это из получателя.

Я не думаю, что есть способ сохранить будильник после отключения питания. Что я буду делать:

  • Запустите службу при загрузке .
  • Проверьте, нужно ли устанавливать сигнал тревоги.

Обратите внимание, что вам где-то нужно будет сохранить информацию о тревоге. Проверьте хранилище данных Android.