我知道已经有数百个这样的问题被问过了,但我一直在查看它们,却仍然找不到任何解决方案。
我看到这个回答“Android应用程序关闭后无法接收到BOOT_COMPLETED广播”说,在Android 3.1版本之后,除非用户先启动你的应用程序,否则不会向应用程序发送BOOT_COMPLETED
广播,但我仍然看到一些应用程序正在执行此操作,所以肯定有一种方法。我真的需要处理它,否则我也反对不经过用户交互就做任何事情。
这是我的AndroidManifest:
<manifest ... >
<!-- to be activated service on boot is completed -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- Keeps the processor from sleeping when a message is received. -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application ... >
<!-- to receive data when boot completed -->
<receiver
android:name="myPackage.BootReceiver"
android:enabled="true"
android:exported="true"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
</manifest>
编辑:我的广播接收器没什么好看的,但是如果有需要的话,这里是它:
package myPackage
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Utils.LogI("BootReceiver", "BootReceiver received!");
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
// Do my stuff
}
}
}