我想在我的应用中捕获所有意外的异常并记录它们。
因此,我实现了一个UncaughtExceptionHandler(名为CustomExceptionHandler),它将异常记录到内部数据库。
我还在我的MainActivity中添加了异常处理程序:
public class MainActivity extends HomeActivity {
@Override
public void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
Thread.setDefaultUncaughtExceptionHandler (new CustomExceptionHandler(getLogger ()));
}
}
但要获得所有异常,我是否必须将异常处理程序添加到我的所有活动和服务中?或者是否为主要活动注册了异常处理程序?
答案 0 :(得分:0)
UncaughtExceptionHandlers由线程调用,不处理异常。活动和服务与此过程无关。 对于应用程序的所有线程中的未捕获异常,将调用setDefaultUncaughtExceptionHandler设置的处理程序,但使用setUncaughtExceptionHandler设置特定处理程序的线程除外。 要回答你的问题 - 你只需要设置一次默认处理程序。