如何在android中确定设备启动事件

时间:2013-07-02 05:16:47

标签: android

我想在我的android应用程序中保存一个日志,日志将包含Device Started(Bootup)和Device Stop Times。任何想法如何做到这一点?

我必须在Bootup上启动我的应用程序,但是如何确定该应用程序是否在Bootup上启动?

我搜索过但无法找到更好的解决方案。

2 个答案:

答案 0 :(得分:7)

使用BroadCastReceiver接收BOOT_COMPLETED广播。此广播在设备启动时抛出

接收器就像

    <receiver
        android:name="ReceiverName"
        android:enabled="true" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>

您需要使用以下延迟

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

现在在代码中编写一个BroadCastReceiver类,如

public class ReceiverName extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
          // do startup tasks or start your luncher activity
    }
}

答案 1 :(得分:5)

您可以使用BroadcastReceiver组件来实现此目的。使用此功能,您可以检测设备的各种事件,例如启动。

要检测启动过程,您需要在AndroidManifest.xml中授予权限,如下所示

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

然后你需要创建一个将处理这个的BrodacastReceiver,

在onReceive()方法中,相应的BroadcastReceiver将启动事件

public class MyReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Intent service = new Intent(context, WordService.class);
        context.startService(service);
    }
}