【问题标题】:android.permission.RECEIVE_BOOT_COMPLETED does not launch activity at bootandroid.permission.RECEIVE_BOOT_COMPLETED 不会在启动时启动活动
【发布时间】:2014-01-12 20:14:06
【问题描述】:

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

我已验证运行 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

【问题讨论】:

  • 你的onreceive方法调用了吗??

标签: java android broadcastreceiver manifest intentfilter


【解决方案1】:

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

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

【讨论】:

  • 这对我不起作用; onReceive() 仍然没有在我的 BroadcastReceiver 中调用
  • 更新:删除 &lt;category android:name="android.intent.category.DEFAULT" /&gt; 并保持 &lt;uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /&gt; 为我工作!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
相关资源
最近更新 更多