繁体   English   中英

在Android中存储状态

[英]Storing State in Android

我有此listview,其中填充了从Internet下载的数据。 因此,在onCreate()方法中,我将运行异步任务以下载信息并将其放入列表视图。

我在布尔值中指定了是否在saveInstanceState()方法期间下载了列表,如果用户从主屏幕按钮退出应用程序并返回,则该值有效。 但是,当用户通过后退按钮退出程序时,saveInstanceState()方法不会运行。

我不想再次下载列表,如何检查它是否以前下载过?

检查一下: 实现生命周期回调 http://developer.android.com/guide/topics/fundamentals/activities.html

使用回调函数可以注意到您的活动发生了什么,并在需要时做出反应。

您可以使用共享首选项存储键值数据: http : //developer.android.com/guide/topics/data/data-storage.html

您可以覆盖Activity.onBackPressed()并将状态保存在那里。

另外,你可以

void onPause() {
    if(isFinishing()) {
       // save your state. maybe you'd be better off with using preferences (or other things suggested by people here), so you don't need to worry about the instance state.
    }
}

如果要在应用程序的LifeCycle之外保留数据,则需要将其存储在Bundle之外。

您的选择是:

我建议使用私有的内部存储文件来保存数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM