Сообщить о невыясненных исключениях

Я хочу поймать необработанные исключения и отправить отчеты о них на мой сервер. Вот как я это реализую:

public final class MyApplication extends Application
{
    private static Context context;
    private static Handler mainHandler;
    private static boolean isDebug;

    @Override
    public void onCreate()
    {
        Thread.currentThread().setUncaughtExceptionHandler(new UncaughtExceptionHandler()
        {
            @Override
            public void uncaughtException(final Thread thread, final Throwable ex)
            {
                new Thread()
                {
                    @Override
                    public void run()
                    {
                        Looper.prepare();

                        ReportUtils.sendReport(thread, ex);
                        Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(thread, ex);
                        Looper.loop();
                        Looper.myLooper().quit();
                    }
                }.start();
            }
        });

        context = getApplicationContext();
        mainHandler = new Handler();
        isDebug = (0 != (getApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE));
    }

    @Override
    public void onTerminate(){}

    public static Context getAppContext()
    {
        return context;
    }

    public static boolean isDebugMode()
    {
        return isDebug;
    }

    public static Handler getMainHandler()
    {
        return mainHandler;
    }
}

Это правильный способ реализовать это? Любая другая альтернатива?

1 ответ

Решение

Вместо того, чтобы делать это самостоятельно, используйте уже настроенный сервис для этого.

Acra - один из них, и он может загружать ваши отчеты о сбоях в электронную таблицу Документов Google.

Bugsense это другое. У него есть бесплатные аккаунты и платные аккаунты.

Crashlytics является довольно новым для Android, но совершенно бесплатно, поэтому я рекомендую его. Это действительно просто настроить.

Другие вопросы по тегам