Я искал этот сайт и нашел несколько ответов, связанных с установкой будильника.Я успешно смог установить будильник.
Что я делаю:
- Из задания я установил будильник, который в определенное время и дату будет вызывать получателя
- Из получателя я вызываю службу
- Из службы я отправляю пользователю уведомление (в панели уведомлений).
Мои вопросы:
Я установил будильник через 5 минут.Скажем, я выключаю телефон и снова включаю его (кажется, он забыл будильник).Как я могу предотвратить это?
Действительно ли мне нужно позвонить в службу для отправки уведомлений или я могу сделать это с получателя?
Ниже приведен код, указанный в предыдущем разделе (а):
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();
}
Этот код ссылается нав предыдущем разделе (с):
@Override
public void onCreate() {
super.onCreate();
nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
showNotification();
}