为了更清楚,我指的是对android.intent.action.BOOT_COMPLETED作出反应的接收器。
我已成功测试了使用API 23在物理设备中工作的接收器。
但是,另一方面,我甚至无法在模拟器上运行它,对于现在的版本22和24,它甚至看起来都没有达到接收器的OnReceive,接收器只是被忽略了。
仿真器的某些限制是否允许启动这些类型的接收器?如果是这种情况,我是否至少可以假设,即使在模拟器中不工作,它也会在物理设备上触发? (出于测试目的,我可以从其他地方启动接收器,因此只要该条件适用就不会介意。)
它也可能是声明接收器是这样的方式,它只是在这个版本上不起作用,这就是我宣布接收器的方式:
<receiver
android:name="com.applications.-----.--------.NoCoverageAndSpaceFullReceiver"
android:label="StartMyServiceAtBootReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.conn.ACTION_TIMEZONE_CHANGED" />
<action android:name="android.net.conn.ACTION_TIME_CHANGED" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
我认为没有任何东西可以避免接收器工作,但为了以防万一,我正在把它。
PD:我已经设置了模拟器进行冷启动,所以问题不在于此。
如果您没有冷启动模拟器,您也应该添加以下操作。
<action android:name="android.intent.action.QUICKBOOT_POWERON" />