Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-崩溃后恢复应用程序_Android - Fatal编程技术网

Android-崩溃后恢复应用程序

Android-崩溃后恢复应用程序,android,Android,我有一个应用程序,如果它被用户关闭并重新启动,它会直接返回到它关闭的活动。 现在我想添加一个功能,这样当应用程序崩溃时,它会清除数据并从第一个活动重新启动应用程序。 我的想法是,我有一个属性“isClosedCorrectly”,一旦应用程序启动,我就将其设置为false。当应用程序正确关闭时,我将其设置为true。 当我启动我的应用程序时,我会查看这个属性,然后根据我想要的做一个动作。 我的问题是:何时isClosedCorrectly设置为TRUE?我能处理这个问题吗?不太清楚“正确关闭”是

我有一个应用程序,如果它被用户关闭并重新启动,它会直接返回到它关闭的活动。 现在我想添加一个功能,这样当应用程序崩溃时,它会清除数据并从第一个活动重新启动应用程序。 我的想法是,我有一个属性“isClosedCorrectly”,一旦应用程序启动,我就将其设置为false。当应用程序正确关闭时,我将其设置为true。 当我启动我的应用程序时,我会查看这个属性,然后根据我想要的做一个动作。
我的问题是:何时isClosedCorrectly设置为TRUE?我能处理这个问题吗?

不太清楚“正确关闭”是什么意思,但我想你指的是未处理的异常抛出

我想到的是实例化一个UncaughtExceptionHandler的机会

    Thread.currentThread().setUncaughtExceptionHandler(
            new Thread.UncaughtExceptionHandler() {
                @Override
                public void uncaughtException(Thread thread, Throwable ex) {

            }
    );
使用此功能,您可以在发生不好的事情时通知应用程序,这些事情会导致您的应用程序崩溃

我会在这个uncaughtException方法中编写某种“日志”,一个包含简单数据的文件,如“true”或“false”


无论何时打开应用程序,您都可能会阅读文件内容并知道该做什么。

没有应用程序级生命周期方法可以告诉您应用程序何时正确“关闭”。其中一个最大的原因是,实际上不存在正确“关闭”应用程序的情况

当用户离开应用程序时,当前正在运行的活动将进入后台并保留在内存中。这样,如果用户决定返回到您的应用程序,他们就不需要等待它再次冷启动

如果你想走这条路,你有几个选择:

  • 以对应用程序有意义的方式记录每个活动的
    onStop()
    ,并使用活动的
    onStop()
    是否被调用的信息来确定它是否已“关闭”

  • 当应用程序开始假定所有不“不正确”的内容都是“正确”时,您的
    isClosedCorrectly
    默认为“true”。然后,当应用程序崩溃时,将
    isClosedCorrectly
    设置为false。您可以使用


日志中的错误输出是什么?这种方法不是傻瓜式的,相反,您必须使用适当的测试用例来测试代码。尽管如此,您可以利用活动生命周期方法来实现您的目标。简单的方法是:修复错误,不允许应用程序崩溃