Androidアプリケーションの自動再起動

1562 ワード

アプリケーションに問題が発生し、手動でアプリケーションを再起動できない場合は、リモート制御プログラムの再起動が必要です.例えば、プッシュ、アプリケーションがプッシュを受信し、restartAPP()メソッドを呼び出し、Appを再起動することができます.*APP全体を再起動*@param context/public static void restartAPP(Context context){/本APP/Intent=new Intent(context,RestartService. class);intent.putExtra(「packageName,context.getPackageName();context.startサービス(intent);/プロセス全体を殺す/android.os.Process.killProcess(android.os.Process.myPiPicess.myPiPiPiPipiid.os.myPiPicess d();}/***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にサービスを登録する