我有这个列表视图,其中填充了从互联网下载的数据。 因此在onCreate()方法中,我将运行异步任务来下载信息并将其放入listview。
我在saveInstanceState()方法中放置了一个布尔值,无论是否下载列表,如果用户从主页按钮退出应用程序并返回,这将起作用。但是,当用户通过后退按钮退出程序时,不会运行saveInstanceState()方法。
我不想再次下载列表,如何检查它是否已经下载?
答案 0 :(得分:1)
检查一下:实施生命周期回调 http://developer.android.com/guide/topics/fundamentals/activities.html
使用回调来了解您的活动会发生什么,并在nesseceray时做出反应。
您可以使用共享偏好设置来存储键值数据: http://developer.android.com/guide/topics/data/data-storage.html
答案 1 :(得分:0)
您可以覆盖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.
}
}
答案 2 :(得分:0)
如果您希望将数据保留在应用程序的LifeCycle之外,则需要将其存储在Bundle之外。
您的options是:
我建议使用私人内部存储文件来保存您的数据。