[英]Is there a way to restart the application instead of having it restart the last activity after a crash?
因为我在Application类中存储了某些必要的信息,所以当用户遇到崩溃时,有时他们会遇到两次崩溃,因为上一个活动需要在应用程序类中存储信息。
活动A >>活动B(需要来自应用程序类的信息)>>活动C
C发生崩溃>>应用程序尝试打开活动B >> B发生崩溃,因为它需要Application类的信息(已重置)
我想避免这种情况,所以我希望可以以某种方式在崩溃后重新启动整个应用程序,而不是重新启动活动。
这是许多解决方案中的一种,但我将其作为一种选择:
您可以使用startActivityForResult()
并在活动C中处理错误时,使用可以识别为崩溃的结果代码finish()
它finish()
,并在活动B的onActivityResult()
中适当地处理事情。
最好的解决方案是处理在任何活动(活动B)中都没有必要信息的情况。
您应该检查onCreate方法是否具有信息,并采取行动:
解释为什么您没有该信息的原因可能有多个(正如其他答案所指出的那样),所以我认为最好的选择是处理此案。
未经检验的理论,只是吐口水。
您能否将自己附加为默认的异常处理程序,并开始在开放活动中调用finish()
? 如果您可以完成所有活动,那么就不能有效地关闭该应用程序,而重新打开该应用程序就像是在重新启动它一样吗?
您不应该在Application对象中保留任何状态。 将其保存在您在onCreate()中收到的捆绑软件中。 最终使用onSaveInstanceState / onRestoreInstanceState来保存/恢复状态。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.