鉴于不再支持HONEYCOMB BOOT COMPLETED,我怎样才能发现我的设备已重启?

时间:2013-01-01 08:26:27

标签: android broadcastreceiver bootcompleted

我正在Android 4.0.3中开发应用程序。根据{{​​3}},我已经读过不再支持HONEYCOMB BOOT COMPLETED事件了。

鉴于此,如何才能发现我的设备已重启?

代码 -

Java类: -

public class MyStartupIntentReceiver extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {
        Logger.i("Device", "REBOOT");
        Logger.i("Device", "REBOOT");
        Logger.i("Device", "REBOOT");
        Logger.i("Device", "REBOOT");
        Logger.i("Device", "REBOOT");
    }
}

清单文件: -

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<receiver android:name="MyStartupIntentReceiver" >
    <intent-filter>
       <action android:name="android.intent.action.BOOT_COMPLETED" />
       <category android:name="android.intent.category.HOME" />
    </intent-filter>
</receiver>

2 个答案:

答案 0 :(得分:2)

抱歉,但也许您对文档有误,无论如何都要确保您在清单中包含<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>权限。我在许多应用程序中使用此广播并且它们运行良好。

确保您知道在安装外部存储之前,此信息BOOT_COMPLETE已发送到应用程序。因此,如果应用程序安装到外部存储器,它将不会收到BOOT_COMPLETE广播消息。

答案 1 :(得分:1)

  

我正在Android 4.0.3中开发应用程序。根据Google的文档,我已经读过不再支持HONEYCOMB BOOT COMPLETED事件。

您误解了文档。支持BOOT_COMPLETED。但是,它确实需要在任何已注册的BroadcastReceiver工作之前手动运行应用程序的某些组件。通常,这是通过启动活动来完成的。因此,如果您只是安装应用程序并重新启动设备,则无法在启动时获得控制权。

您可以在the "Launch controls on stopped applications" of the Android 3.1 release notes以及this blog post中详细了解相关信息。