Как настроить будильник, который будет срабатывать, даже если я перезагружу свой телефон Android? - PullRequest
4 голосов
/ 21 июня 2010

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

Что я делаю:

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

Мои вопросы:

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

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

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

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();
 }

1 Ответ

2 голосов
/ 21 июня 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...