我的应用程序包括一系列活动,用户必须通过这些活动以线性方式进行。假设这一系列活动看起来像这样:A(代表主菜单),B,C,D,E。用户继续这样:A - > B - > C - > D - > E.在每项活动中,用户必须输入数据或允许设备自动获取数据(例如通过网络或蓝牙)。
偶尔,我的应用程序会在其中一个中间活动中崩溃。通常情况下,最终发生的事情是该应用程序会移回一两个活动。例如,如果我的应用程序在活动D中崩溃,则应用程序可能会移回活动C或B.但问题是,在发生此类崩溃后,输入数据处于如此奇怪的状态,以至于应用程序再次崩溃并显示强制关闭对话框,一直回到活动A,即主菜单。
如何捕获导致这些崩溃在整个应用程序中全局崩溃的异常,以便我可以清理数据并优雅地允许用户返回主菜单?
答案 0 :(得分:3)
扩展应用程序类
import android.app.Application;
import android.util.Log;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
Log.e("MyApplication", ex.getMessage());
}
});
}
}
在AndroidManifest.xml文件中添加以下行作为Application属性
android:name=".MyApplication"
答案 1 :(得分:0)
Thread.setDefaultUncaughtExceptionHandler(new DefaultExceptionHandler()... );