我以这种方式定义了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%的频率启动(现在,并不是说禁用它们会迫使接收器始终启动,这似乎有时考虑到问题甚至与此有关,有时甚至不会发生。
如果前一个与接收器无关,是否有任何方法可以使接收器在上述需要的情况下才启动?