作为附加信息:BOOT_COMPLETE在挂载外部存储之前发送到应用程序。因此,如果将应用程序安装到外部存储,它将不会收到BOOT_COMPLETE广播消息。
其他答案看起来不错,但我想我会将所有内容都包装成一个完整答案。
您的AndroidManifest.xml
文件中需要以下内容:
在您的<manifest>
元素中:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
在您的<application>
元素中(请确保为您使用完全限定的[或相对]类名BroadcastReceiver):
<receiver android:name="com.example.MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
(你不需要的android:enabled,exported
等等,属性:Android的默认值是正确的)
在MyBroadcastReceiver.java
:
package com.example;
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent startServiceIntent = new Intent(context, MyService.class);
context.startService(startServiceIntent);
}
}
从最初的问题: