Android,如何确定是否发生了重启?

NoC*_*ier 3 android

我将如何以编程方式确定Android设备何时重新启动(无论是单独启动还是用户启动)?

Aar*_*uce 10

设置一个BroadcastReceiver并在清单中注册它以响应android.intent.action.BOOT_COMPLETED系统.当手机启动时,广播接收者的onReceive方法中的代码将会运行.确保它产生一个单独的线程或花费不到10秒,操作系统将在10秒后销毁您的broadcastreceiver线程.


小智 5

这个代码片段在android-os启动后自动启动一个应用程序.

AndroidManifest.xml中(应用程序部分):

// You must hold the RECEIVE_BOOT_COMPLETED permission in order to receive this broadcast. 
<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>
[..]
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
[..]
Run Code Online (Sandbox Code Playgroud)

在Java类中

 public class BootUpReceiver extends BroadcastReceiver{

            @Override
            public void onReceive(Context context, Intent intent) {
                    Intent i = new Intent(context, MyActivity.class);  
                    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    context.startActivity(i);  
            }

}
Run Code Online (Sandbox Code Playgroud)