android.permission.RECEIVE_BOOT_COMPLETED在启动时不启动活动

时间:2013-12-24 15:43:06

标签: java android broadcastreceiver manifest intentfilter

我有一个BootUpReceiver类,我试图与RECEIVE_BOOT_COMPLETED一起使用,以在设备启动时启动一个Activity。问题是 - 当我启动应用程序然后重启设备时似乎没有这样做。

我已经验证运行Activity1.java没有问题 - 问题出在Manifest或BootUpReceiver类中,但我不确定它为什么在重新启动后无法启动。

BootUpReceiver.java:

public class BootUpReceiver extends BroadcastReceiver{


 @Override
 public void onReceive(Context context, Intent intent) {

     Intent i = new Intent(context, Activity1.class); 
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i); 

 }
}



<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.com.idg.voiscphone"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.idg.voiscphone.Activity1"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

           <activity
            android:name="com.idg.voiscphone.Activity2"
            android:label="@string/app_name" >
        </activity>
          <activity
            android:name="com.idg.voiscphone.Activity3"
            android:label="@string/app_name" >
        </activity>
              <activity
            android:name="com.idg.voiscphone.Activity3a"
            android:label="@string/app_name" >
        </activity>
              <activity
            android:name="com.idg.voiscphone.Activity3b"
            android:label="@string/app_name" >
        </activity>
       <receiver android:enabled="true" android:name=".BootUpReceiver"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>
    </application>

</manifest>

示例来源:

http://androidrocksonmobility.blogspot.com/2012/01/how-to-create-auto-start-android.html

1 个答案:

答案 0 :(得分:0)

删除android:permission="android.permission.RECEIVE_BOOT_COMPLETED",然后重试。

除此之外,不要求您的活动出现在可能在同一时间开始的任何其他活动之前,例如主屏幕。