Android: простой будильник - PullRequest
       11

Android: простой будильник

1 голос
/ 30 марта 2011

Пишу простой будильник.Он содержит MainActivity с ListView, WakeActivity с сообщением о пробуждении и PlayerService, который воспроизводит звук.Я использую следующий код для установки будильника:

Intent i = new Intent(context, WakeupActivity.class);
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, a.getId(), i, 0);
    Calendar cal = getNextAlarm();
    if(cal!=null){
        alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
        if(toast) showToast(cal);
    }

В манифесте Android WakeupActivity определяется как

android:launchMode="singleTask"

В методе onCreate я запускаю кнопку закрытия.В onResume я запускаю PlayerService

Intent i = new Intent(this, PlayerService.class.); startActivity(i);

Когда пользователь нажимает кнопку закрытия, я вызываю fnish(); и, наконец, в onPause () я останавливаю PlayerService.Это работает, но есть один случай, который я не могу понять.

  1. Я установил будильник и оставил основную активность сверху.WakeupActivity и PlayerService запускаются успешно.Когда я нажимаю кнопку закрытия, я возвращаюсь в MainActivity и все в порядке.
  2. Я устанавливаю будильник и нажимаю кнопку домой.WakeupActivity и PlayerService запускаются успешно.Когда я нажимаю кнопку закрытия, музыка останавливается, и onDestroy () для вызовов WakeupActivity (как в 1 случае) ... Кажется, хорошо, но когда я удерживаю кнопку «Домой» и выбираю свое приложение, я возвращаюсь к WakeupActivity и музыка начинается снова !!!Что за черт?Я заканчиваю эту деятельность!Почему так?Пожалуйста, помогите!
...