2017-06-23 6 views
2

Androidアプリケーションを構築しました。戻るボタンを使ってアプリケーションを定期的に終了すると、onDestroy()が実行されます。しかし、最近のアプリケーションボタンを使用してアプリケーションを終了すると、onDestroy()は実行されません。私は今、次の私の主なActivityonCreate(Bundle savedInstanceState)方法で追加しました:Androidでアプリを殺すとメソッドを実行する

Thread.setDefaultUncaughtExceptionHandler (new Thread.UncaughtExceptionHandler() { 
     @Override 
     public void uncaughtException (Thread thread, Throwable e) 
     { 
      handleUncaughtException (thread, e); 
     } 
    }); 

その後、私が追加した主なActivityクラス:私は殺すとき

private boolean isUIThread(){ 
    return Looper.getMainLooper().getThread() == Thread.currentThread(); 
} 

public void handleUncaughtException(Thread thread, Throwable e) { 
    if(isUIThread()) { 
     // exception occurred from UI thread 


    } else { //handle non UI thread throw uncaught exception 
     new Handler(Looper.getMainLooper()).post(new Runnable() { 
      @Override 
      public void run() { 
       //handle non UI thread throw uncaught exception 

      } 
     }); 
    } 
} 

残念ながらhandleUncaughtException()メソッドが呼び出されることはありませんます私のアプリケーション(バックボタンを使ってアプリケーションを定期的に終了するときにも呼び出されません)。

どうしたのですか?

私はを使用しています。 5.1。

+0

どのようにアプリケーションを強制終了しますか? –

+0

@Rod_Algonquinナビゲーションバーの右端のボタンをクリックしています(3つのボタンがあります)。これにより、実行中のすべてのアプリの概要がわかります。そして、私はすべての実行中のアプリを殺すためにスワイプを作っています。 – machinery

+0

OnStop()メソッドの呼び出し –

答えて

0

残念ながら、アプリケーションを終了すると、handleUncaughtException()メソッドは呼び出されません(アプリケーションを定期的にバックボタンで終了すると呼び出されません)。

のDalvik内)

Catching an exceptionとアプリ(Linuxの)プロセスを殺すには、それ自体が異なるものです。 handleUncaughtException()メソッドは、アプリがキャッチされない例外をスローしない限り、この場合呼び出されません。唯一ActivityさんonPause()が呼び出されることが保証されている更新ムービーからアプリを削除するとアプリが

アンドロイド

に殺されたときにメソッドを実行

。しかし、あなたはServiceのコールバックによって "通知"されるかもしれません。いくつかの追加情報はhereまたはhereです。

関連する問題