我正在尝试向我的程序添加BroadcastReceiver
,以便在检测到MainActivity
操作时启动我的BOOT_COMPLETED
。
我已尝试了所有内容here和here,但它拒绝运作。我正在运行Android 5.1.1,API 22.
AndroidManifest.xml
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- Declaring broadcast receiver for BOOT_COMPLETED event. -->
<receiver
android:name=".BootReceiver"
android:enabled="true"
android:exported="true"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.QUICKBOOT_POWERON"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</receiver>
在<intent-filter>
中,我尝试独立使用BOOT_COMPLETED
和QUICKBOOT_POWERON
以及结合使用(如图所示),结果没有变化。
BootReceiver.java
public class BootReceiver extends BroadcastReceiver {
private final static String TAG = BootReceiver.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "BootReceiver has been called - attempting to launch MainActivity");
Intent startMainActivityIntent = new Intent(context, MainActivity.class);
startMainActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startMainActivityIntent);
}
}
编辑:在重新启动手机之前,我正在从多任务中删除应用程序。如果我启动活动,然后在它运行时重新启动手机,它似乎仍然在重启时。但是,尝试打开它会导致崩溃。