全局捕获某些活动中抛出的异常

时间:2012-08-30 14:18:56

标签: android android-activity

我有一个包含LoginActivity的应用程序,它使WebService请求授权用户。如果凭据正确,我会在Auth单例中存储其会话ID。

但是在应用程序使用期间,用户可以注销(服务器重启等)。在这种情况下,我可以抛出一些AuthException。它可以在每个应用程序的Activity中抛出。

如何抓住每个AuthException中的Activity来完成当前的LoginActivity并再次启动Application

这个例外可以在AuthLayerActivity或某些其他人会延伸的{{1}}中到达吗?

4 个答案:

答案 0 :(得分:1)

我不会使用Exceptions来做到这一点。特别是如果您尝试将Exception从一个Activity传播到另一个Activity。

但是活动通常需要不时更新其状态,如果您检查身份验证状态,则可以根据需要返回登录状态。或者,发送广播也可以作为通知。

答案 1 :(得分:0)

您可能希望使用Thread.setDefaultUncaughtExceptionHandler()

声明默认的未捕获异常处理程序

请参阅Ideal way to set global uncaught exception Handler in Android

答案 2 :(得分:0)

您可以使用将处理异常部分的所有活动继承的父活动。

答案 3 :(得分:0)

你可以使用我喜欢的FitActivity来处理所有异常,并根据提供的策略做一些事情。 看这里:https://github.com/rysiekblah/android-commons/blob/master/src/main/java/com/rysiekblah/android/commons/activity/FitActivity.java