我正在开发一款广泛需要服务器连接以及GPS定位更新的应用。 该应用程序将在道路上使用。我试图最小化由于互联网连接或由于服务器的意外数据导致应用程序崩溃的可能性,但仍有可能崩溃。现在我想做的是在应用程序再次启动时恢复到以前的状态,因此我需要在崩溃之前存储它的状态。
现在,有什么更好的方法呢?
我尝试过onDestroy,但每次应用程序崩溃时都不会调用它。
我该怎么做?
提前完成。
答案 0 :(得分:2)
这完全取决于您的应用的工作方式,您希望存储的信息类型。
您可以反复将值保存到共享偏好(例如检查点),当应用崩溃且应用重新启动时,您可以从偏好设置中获取值
答案 1 :(得分:2)
[..]你应该使用
onPause()
方法来编写任何持久性 数据(例如用户编辑)到存储。
如果必须保留数据,请在onPause()
中执行,因为如果应用程序或活动的进程将被操作系统杀死,则可以保证调用此生命周期回调。
答案 2 :(得分:-1)
当然,这是使应用程序不崩溃的最佳方式,如果应用程序有连接问题,只需告诉用户。但如果你知道崩溃发生在哪里,你可以这样做:
try
{
// some logic with internet connection
}
catch (Exception e)
{
// here you can save your current progress or some data to database or to shared preferences
}