Приемник, кажется, запускается за пределами того, когда он должен - PullRequest
0 голосов
/ 23 декабря 2018

У меня определен BroadCastReceiver следующим образом:

<receiver
        android:name="com.applications.-----.-----.NoCoverageAndSpaceFullReceiver"
        android:label="StartMyServiceAtBootReceiver"
        android:enabled="true"
        android:exported="true" >
        <intent-filter>

            <action android:name="android.intent.action.TIMEZONE_CHANGED" />
            <action android:name="android.intent.action.TIME_SET" />
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.QUICKBOOT_POWERON" />
        </intent-filter>
    </receiver>

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

Но похоже, что приемник время от времени запускается, когда эти условия не выполняются.Дело в том, что он не возражает, если приемник делает это, пока режим полета, автоматическая дата / время и автоматический часовой пояс находятся в своем включенном состоянии, но, если какие-либо из этих вещей не включены, появляется нежелательное поведение.Итак, мне интересно, могут ли эти условия каким-то образом заставить ресивер запускаться каким-либо образом и что нужно сделать, чтобы избежать его на 100% (прямо сейчас, их отключение не заставляет ресивер всегда запускаться, похоже, иногдаслучается, а иногда нет, учитывая, что проблема даже связана с этим).

Если предыдущий не имеет ничего общего, есть ли способ заставить приемник просто запустить в упомянутых желаемых случаях?

...