BroadcastReceiver doesn' t будят телефон

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

Сегодня, однако, со мной связался пользователь, которые послали мне действительно странную регистрацию и жаловались, что его тревога не началась, пока он не имел, открыл телефон один. Я раньше имел проблемы с телефонами, возвращающимися, чтобы спать после того, как приемник закончил его работу и прежде чем деятельность была начата, но создание WakeLock в приемнике, казалось, решило проблему. По крайней мере, до сих пор - от регистрации кажется, что onReceive метод не назвали вообще, пока у пользователя нет разблокированного телефона один.

Факты:

  • это - первое дело, которое я слушал
  • это произошло несколько раз с пользователем, но не каждый раз
  • регистрация подготовлен, добавив текст к базе данных SQLite. Это, кажется, не задерживает применение никаким значительным способом
  • информация от onReceive был зарегистрирован спустя более чем 100 секунд после ожидаемого сигнального времени начала. Это - первый вызов метода в onReceive
  • тревога была начата сразу после пользователя, открыл телефон
  • я использую AlarmManager. Флаг RTC_WAKEUP
  • пользователь <�лития> говорит, что у него нет обычая rom. Я жду ответа, если у него есть какой-либо таможенный/особенный Lockscreen <�литием> модель телефона является Sony Xperia U ST25A, Android 4.0.4

Какие-либо идеи, что могло вызывать эту проблему? Действительно ли возможно, что BroadcastReceiver "в" WakeLock не работает так или иначе?

Править:

Я хотел бы подчеркнуть проблему здесь - BroadcastReceiver должен не дать спать телефону во время своего целого onReceive метода. Однако, в моем случае, это - любой это

  • телефон падает на сон прежде onReceive конец методов (даже прежде, чем закончить "регистрировать требование")
  • , который не телефон, пробуждает приемником вообще

Кроме того, я хотел бы указать на то, что пользователь четко дал понять - тревога началась точно, когда у него есть разблокированный телефон один. Несколько раз.

Некоторый код:

@Override
public void onReceive(Context context, Intent intent) {
    Logger.initialize(context, "AlarmReceiver");
    ...
}

Методы лесоруба:

public synchronized static void initialize(Context context, String text) {
    try {
        if (mInstance == null) {//this is the block that is runned
            BugSenseHandler.initAndStartSession(context, BUGSENSE_ID);
            mInstance = new Logger(context);
            log("== Logger initialized == from "
                    + (text != null ? text : ""));//it stores times as well. Said 
                                                  //that alarm was started over 100 
                                                  //seconds after it should
        } else {
            log("logger initialized again from "
                    + (text != null ? text : ""));
        }
    } catch (Exception e) {
        try {
            BugSenseHandler.sendException(e);
            mInstance = null;
        } catch (Exception e2) {
        }
    }
}
1
nl ja de
Никто не будет в состоянии дать вам любую надлежащую помощь без некоторого кода.
добавлено автор Stefan de Bruijn, источник
Дорогой, см. мой ответ на этом посту stackoverflow.com/questions/20113161/…
добавлено автор Junaid, источник
@StefandeBruijn у меня есть некоторый код также с объяснением относительно способа, которым я верю ему, не связан с проблемной причиной
добавлено автор Koger, источник

1 ответы

Смотрите на WakefulIntentService от Commonsware

0
добавлено
Хорошо, я вижу ваш пункт теперь. Сервисный класс WakefulIntent полезен, если вы порождаете работу за пределами своего бытового радиоприемника, который, кажется, не имеет место... Я также соглашаюсь с вами, что согласно документации Android, AlarmManager держит замок следа, который гарантирует, что ваш onReceive метод закончит. Это звучит мне больше как случай AlarmManger, не вызывающего по графику. Конечно, некоторые сообщения Регистрации могли помочь разъяснить это.
добавлено автор EJK, источник
это выглядит интересным, но я все еще хотел бы знать, почему телефон падает на сон прежде, чем закончить onReceive, в то время как это должно бодрствовать до своего конца, по крайней мере согласно документации
добавлено автор Koger, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

Android Developers
Android Developers
4 476 участник(ов)

Общаемся на темы, посвященным Android-разработке, SDK, Kotlin, Realm и т.д.

Android Architecture
Android Architecture
2 186 участник(ов)

Русскоязычный чат по архитектуре в андроид приложениях. Подробнее: http://telegra.ph/Android-Architecture-12-24

rus-speaking/android
rus-speaking/android
1 705 участник(ов)

Основной чат по Android разработке (вопрос-ответ). ПРАВИЛА: bit.ly/andr-rules. NEWS: bit.ly/AnrdResId ЧАТЫ: Основной: bit.ly/andr-main IDE, сборка, Git, сервисы: bit.ly/andr-tools Оффтоп: bit.ly/andr-offtop Конференции, события: bit.ly/andr-events Вакансии, найм: bit.ly/andr-job Архитектура: bit.ly/andr-patterns Rx: bit.ly/andr-rx Тестирование: bit.ly/andr-test Kotlin: bit.ly/andr-kotlin Хаmarin: bit.ly/andr-xamarin За мат, спам, агрессию, предложения о работе, оффтоп в этом канале - бан на сутки и более ☢☢☢

Android Dev Подкаст
Android Dev Подкаст
1 325 участник(ов)

Комната для обсуждения Android Dev подкаста apptractor.ru/AndroidDev/ Общее обсуждение Android: https://t.me/android_ru Остальные чаты про Android: http://t.me/devChats Наши новости https://t.me/androiddevpodcast_news

Android Guards
Android Guards
602 участник(ов)

Обсуждение любых вопросов касающихся безопасности Android. - Защита системы и приложений - Уязвимости и эксплойты - Вредоносное ПО - Копание в кишках системы и приложений (RE)

Android JOB
Android JOB
466 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению Android (full-time, part-time, remote и разовые подработки)

AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
458 участник(ов)

It's Android time now! Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov

Aandroid Talks!
Aandroid Talks!
212 участник(ов)

Чат об общих вопросах по ОС Android. Чат для разработки под андроид - pro.android: https://t.me/joinchat/AAAAAEKIFKnmRT9cMebb9w

Android Rus
Android Rus
68 участник(ов)