java - android.permission.RECEIVE_BOOT_COMPLETED 不会在启动时启动 Activity

标签 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

最佳答案

删除 android:permission="android.permission.RECEIVE_BOOT_COMPLETED" 并重试。

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

关于java - android.permission.RECEIVE_BOOT_COMPLETED 不会在启动时启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20763380/

相关文章:

java - 垂直拆分 Android 布局向两侧添加重力以使对象居中

android - Activity 未找到异常 : No Activity found to handle Intent sospicious behaviour

android - 模拟器 : PANIC: Broken AVD system path. 检查您的 ANDROID_SDK_ROOT 值 [F :\android]?

java - 如何处理网络状态变化时的在线媒体播放器(网络在 WiFi 或移动数据之间切换)?

java - SAXParser 不会解析整个 xml 文件

java - JAXB - 如果为 false,则抑制 boolean 属性

java - ExceptionTranslator 的异常不会返回到 flex

Android: AlarmManager on BroadcastReceiver 的生命周期

android - 在广播接收器响应 Intent.ACTION_BATTERY_CHANGED 之前获取电池电量

java - java - 如何将xml Element及其子节点转换为Java中的String?