SQLite で一部の Async が不適切な順序で処理を実行したことが原因で、クラッシュが発生し、問題が発生しました。これらすべてをデバッグするには時間がかかりましたが、内部データベースへのアクセスは非常に役に立ちました。開発デバイスでその内部データベースにアクセスする方法は知っていますが、何か問題が発生した場合に備えて、デバイスに関係なくそのデータベースのインスタンスを取得できるようにしたいと考えています。エラー報告には Crashlytics を使用しています。
問題は、クラッシュの収集/レポート中に Crashlytics にコードの一部 (メソッドなど) を実行させる方法はありますか? (たとえば、データベースのコピーを取得して電子メールで送信するなど)
ドキュメントに何も見つかりませんでした。
Crashlytics がクラッシュをログに記録する前に制御を取得することは可能です。基本的に、キャッチされていない独自の例外ハンドラーを作成し、そこから Crashlytics のハンドラーを呼び出す必要があります。Application クラスで次のようなもの:
private UncaughtExceptionHandler originalUncaughtHandler;
@Override
public void onCreate() {
// initialize Fabric with Crashlytics
originalUncaughtHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(this);
// do the rest of your oncreate stuff
}
@Override
public void uncaughtException(Thread thread, Throwable ex) {
// do your work to add data to Crashlytics log
originalUncaughtHandler.uncaughtException(thread, ex);
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加