android 应用程序自动重启

当应用程序出现问题而不能手动重启应用时,就需要远程控制程序的重启。例如可以通过推送,应用收到推送,调用restartAPP()方法,重启App。
* 重启整个APP
* @param context
/
public static void restartAPP(Context context) {
/
开启一个新的服务,用来重启本APP/
Intent intent = new Intent(context, RestartService.class);
intent.putExtra("packageName", context.getPackageName());
context.startService(intent);
/杀死整个进程/
android.os.Process.killProcess(android.os.Process.myPid());
}
/**
* Created by wangfengkai on 2017/6/22.
*/
public class RestartService extends Service {
//关闭应用后多久重新启动
private static long stopDelayed = 2000;
private Handler handler;
private String packageName;
public KillSelfService() {
handler = new Handler();
}

        @Override
        public int onStartCommand(final Intent intent, int flags, int startId) {
            packageName = intent.getStringExtra("packageName");
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(packageName);
                    startActivity(LaunchIntent);
                    RestartService.this.stopSelf();
                }
            }, stopDelayed);
            return super.onStartCommand(intent, flags, startId);
        }
        @Nullable
        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }
    }
在AndroidManifest.xml中注册Service
    <service android:name=".service.RestartService" />
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容