Рекомендуемый способ запуска запланированной деятельности при запуске? - PullRequest
0 голосов
/ 27 октября 2011

Я пытаюсь отключить запланированные действия каждый час или около того, все работает в фоновом режиме.

Сейчас у меня есть BroadcastReceiver, который запускается при загрузке устройства.BroadcastReceiver создает PendingIntent для действия (Called AlarmController), которое создает все необходимые методы, необходимые для отключения запланированного действия.

Однако, похоже, это не работает.Вот так мой класс BroadcastReciever onReceive {} выглядит так: , а идентичен моей основной деятельности onCreate {} (только для тестирования)

    Intent intent = new Intent(serviceactivirt.this, AlarmController.class);
    PendingIntent sender = PendingIntent.getActivity(serviceactivirt.this, 0, intent, 0);
    try {
        sender.send();
    } catch (CanceledException e) {
        Toast.makeText(getApplicationContext(), "FEJLSAN", Toast.LENGTH_LONG).show();
    }

Это на самом деле работает, за исключением того, что мое приложение вылетаетпри запуске, но запланированная деятельность работает ... Есть идеи?Это «способ сделать это» или есть более рекомендуемый способ?Ура!

Решение:

Вместо того, чтобы BroadcastReciever вызывал Activity, я заставил BroadcastReciever запустить Сервис.И изменил мою активность на сервис, программно и в манифесте.Прекрасно работает!

1 Ответ

0 голосов
/ 28 октября 2011

Я пытаюсь отключить запланированные действия каждый час или около того, все работает в фоновом режиме.

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

Прямо сейчас у меня есть BroadcastReceiver, который срабатывает при загрузке устройства.

Это понадобится вам только для настройки расписания AlarmManager для ваших почасовых событий. Ваш PendingIntent для AlarmManager может быть тем, который вы получите через getActivity().

Как бы то ни было, это не похоже на работу.

Если вы хотите начать занятие, позвоните startActivity(). Не создавайте PendingIntent, затем сразу send() PendingIntent.

Кроме того, избавьтесь от getApplicationContext() и просто используйте this.

за исключением того, что мое приложение вылетает при запуске

Используйте adb logcat, DDMS или перспективу DDMS в Eclipse, чтобы проверить LogCat и посмотреть трассировку стека, связанную с вашей аварией.

...