如何在设备重启后重新启动我的应用程序?

3

我做了一个使用后台服务的Android应用程序。它运行良好,但是如果用户重新启动设备,我的应用程序将停止运行。我该如何解决这个问题?也就是说,如何在设备重启后重新启动我的应用程序?


2
https://dev59.com/YGw15IYBdhLWcg3wzO1_#6392009 - Mob
1个回答

7
您可以按以下方式进行操作:
注册一个接收器,该接收器将在启动完成时启动,并在Android中添加以下权限:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

在清单文件中添加以下行:
<receiver android:name="com.test.check.MyReceiver">
            <intent-filter>
                 <action android:name="android.intent.action.BOOT_COMPLETED"></action>
            </intent-filter>
        </receiver>

                 <service android:name=".MyService">
                    <intent-filter>
                        <action android:name="com.test.check.MyService" />
                    </intent-filter>
                </service>

现在,在MyReceiver的onReceive()方法中启动服务:
public class MyReceiver extends BroadcastReceiver {

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


         Toast.makeText(arg0, "boot completed",Toast.LENGTH_LONG).show();

         Intent serviceIntent = new Intent("com.test.check.MyService");
         arg0.startService(serviceIntent);


    }
}

现在,在服务的onCreate方法中,使用应用程序的包名启动您想要的应用程序:

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("package.name");
            startActivity( LaunchIntent );

这将满足您的需求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接