Android / Java: UncaughtExceptionHandler и Bugsnag параллельно? - PullRequest
0 голосов
/ 27 января 2019

Я использую Bugsnag для Автоматическая отчетность об ошибках и хотел бы выполнить некоторые дополнительные действия, такие как перезапуск, при сбое приложения.

Проблема: оба работают индивидуально , но не объединены.Как только я добавлю MyUncaughtExceptionHandler, Bugsnag прекратит создавать отчеты.

Приложение

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        Bugsnag.init(this);

        // "Breaks" Bugsnag:
        Thread.setDefaultUncaughtExceptionHandler(
            new MyUncaughtExceptionHandler(this, MainActivity.class));
    }
}

MyUncaughtExceptionHandler

public class MyUncaughtExceptionHandler implements
    java.lang.Thread.UncaughtExceptionHandler {

    private final Context mContext;
    private final Class<?> mActivityClass;

    public MyUncaughtExceptionHandler(Context context, Class<?> c) {
        mContext = context;
        mActivityClass = c;
    }

    public void uncaughtException(Thread thread, Throwable exception) {
        Bugsnag.notify(exception);
        Intent intent = new Intent(mContext, mActivityClass);
        mContext.startActivity(intent); // restarts the app

        Process.killProcess(Process.myPid());
        System.exit(0);
    }
}

Я уже пытался дозвониться до Bugsnag.notify(exception) в пределах MyUncaughtExceptionHandler.

Есть идеи?Заранее спасибо!

1 Ответ

0 голосов
/ 28 января 2019

Я заметил ваш пост здесь, но всегда обращайтесь к нам через службу поддержки Bugsnag, если вам нужен гарантированный ответ.

Проблема в том, что когда вы звоните Thread.setUncaughtExceptionHandler, вы удаляете обработчиккоторый Bugsnag устанавливает здесь: https://github.com/bugsnag/bugsnag-android/blob/2308eb6c706f66495dea116acf619f695530dff4/sdk/src/main/java/com/bugsnag/android/ExceptionHandler.java#L31

Вам нужно вызвать оригинальный обработчик, чтобы Bugsnag мог что-либо обнаружить.

Обратите внимание, что уничтожение процесса и запуск нового намерения неподход, который мы рекомендуем в приложении для Android.

...