1. ホーム
  2. android

[解決済み] Android: 強制終了されたアプリケーションを自動で再起動させるには?

2023-04-29 22:49:56

質問

Androidアプリケーションで、例外処理を適切に行わないと、通常、quot;Force Closed"というエラーが発生します。

強制終了されたアプリケーションを自動的に再起動するにはどうしたらよいですか。

このために使用する特定のパーミッションはありますか?

どのように解決するのですか?

これを達成するためには、2つのことを行う必要があります。

  1. 強制終了を回避する - アプリケーション クラッシュの標準的な方法です。
  2. クラッシュが起こったときの再起動メカニズムをセットアップします。

これらを行う方法は以下を参照してください。

  1. コール Thread.setDefaultUncaughtExceptionHandler() を呼び出すと、キャッチされていない例外をすべてキャッチすることができます。 uncaughtException() メソッドが呼び出され、quot;Force close" は表示されず、アプリケーションは無応答になります。 アプリケーションがクラッシュしたときに再起動するためには、次のようにします。

  2. onCreate メソッドで、メインアクティビティで PendingIntent のメンバーを初期化します。

    Intent intent = PendingIntent.getActivity(
        YourApplication.getInstance().getBaseContext(),
        0,
        new Intent(getIntent()),
        getIntent().getFlags());
    
    

次に、以下を uncaughtException() メソッドに記述します。

AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 2000, intent);
System.exit(2);

また System.exit() を呼び出す必要があります。そうしないと動作しません。 このようにすると、2秒後にアプリケーションが再起動します。

最終的には、アプリケーションがクラッシュしたことを示すフラグをインテントに設定することができます。 onCreate() メソッドでダイアログを表示させることができます。