gpt4 book ai didi

android - 如何使用 ACRA 并设置 UncaughtExceptionHandler?

转载 作者:行者123 更新时间:2023-11-29 17:50:36 24 4
gpt4 key购买 nike

在我的应用程序中,我想设置未捕获的异常处理程序,以便在发生不可预见的崩溃时我可以做一些事情。 (我想做一些事情,比如关闭套接字、清除通知……等等)

Thread.currentThread().setDefaultUncaughtExceptionHandler(sDefaultThreadHandler);

在哪里

private static UncaughtExceptionHandler sDefaultThreadHandler = new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
// i want ACRA to log here, then clear notifications, close out connections, cancel asynctasks...etc.

// DO NOT REMOVE or else your app will hang when there is a crash.
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(10);
}
};

问题是,我希望 ACRA 在流程退出之前也进行报告。我该怎么做?

最佳答案

哦等等,nvm。我发现 ACRA 使用默认的异常处理程序(根据 https://github.com/ACRA/acra/blob/master/src/main/java/org/acra/ErrorReporter.java#L201 ),这意味着如果您自己的线程有一个线程异常处理程序,它将首先被使用。

Thread.currentThread().setUncaughtExceptionHandler(mYourOwnThreadHandler);

如果您真的需要使用 ACRA,那么在您覆盖的 uncaughtException() 方法中,只需通过调用 Thread.getDefaultUncaughtExceptionHandler().uncaughtException(thread, ex );

关于android - 如何使用 ACRA 并设置 UncaughtExceptionHandler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23123487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com