2011-08-01 18 views
2

私のアプリケーションには一連のアクティビティが含まれています。これを使用すると、ユーザーは線形に進む必要があります。この一連のアクティビティは、A(メインメニューを表す)、B、C、D、Eのようになります。ユーザーはA→B→C→D→Eのように進みます。これらのアクティビティでは、ユーザーはデータを入力するか、デバイスがデータを自動的に取得できるようにする必要があります(ネットワークやBluetoothなど)。Androidで何らかのグローバル例外ハンドラを作成することはできますか?

場合によっては、中間のアクティビティのいずれかでアプリがクラッシュすることがあります。何が起きるのかは、通常、アプリが1つまたは複数のアクティビティを元に戻すことです。たとえば、アプリがDアクティビティでクラッシュした場合、アプリはアクティビティCまたはBに戻る可能性があります。ただし、このようなクラッシュの後では、入力データが異常な状態になってアプリが再びクラッシュし、アクティビティAのメインメニューに戻ります。

これらの例外をキャッチすると、アプリケーション全体でこれらのクラッシュが発生するため、データをクリーンアップして、メインメニューに戻ることができます。

答えて

0
Thread.setDefaultUncaughtExceptionHandler(new DefaultExceptionHandler()...); 
+0

感謝をAndroidManifest.xmlファイルに次の行を追加します。残念ながら、私ができることを望んでいたことは、すでに尋ねられ答えられている他のいくつかの質問に基づいて、Androidでは不可能かもしれないようです。 – kibibyte

2

import android.app.Application; 
import android.util.Log; 

public class MyApplication extends Application { 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() { 

      @Override 
      public void uncaughtException(Thread thread, Throwable ex) { 
       Log.e("MyApplication", ex.getMessage());    

      } 
     }); 
    } 
} 

Applicationクラスを拡張して、アプリケーション属性として私はこれについて知らせるため

android:name=".MyApplication" 
関連する問題