0

可能重复:
ICS 中的广播接收器

我有一个启动接收器,它在收到启动时调用另一个应用程序,这在 froyo 上运行良好。但是当我尝试在 ICS 上运行它时它不起作用,并且从未调用过意图!这是在我的清单中注册的引导接收器。

   <receiver android:name=".MyBroadCastReceiver" >
        <intent-filter>
           <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.QUICKBOOT_POWERON" />

        </intent-filter>
    </receiver>

这是我的广播接收器类

公共类 MyBroadCastReceiver 扩展 BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub


     if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
            Intent i = new Intent(context, BootActivity.class);
          i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);


    }else{

    }
}}

为什么这不起作用...有没有其他方法可以使它在 ICS 上工作?

4

1 回答 1

0

从 3.1 开始,当安装应用程序时,它们处于“停止”状态,因此在用户明确启动它们之前它们将无法运行。按下强制停止将使它们返回此状态。

因此,当应用程序首次安装时,系统会完全忽略它们,除非用户手动启动某些东西:很可能是单击启动器活动或添加应用程序小部件。

一直依赖于在没有用户干预的情况下获得某种系统广播的开发人员将需要针对 Android 3.1 调整他们的应用程序。

于 2012-09-10T10:21:35.077 回答