我的问题是当我尝试在一小时后重新启动应用程序时,应用程序以空数据打开,我相信内核会在不终止进程的情况下删除资源。请帮助我.thx
问问题
838 次
2 回答
0
我猜你必须将数据存储在某种持久存储中。android平台上可用的选项很少:
http://developer.android.com/guide/topics/data/data-storage.html
于 2013-03-25T10:09:02.410 回答
0
“空数据”是什么意思?如果您的意思是一些动态变量,那么它们的状态当然会在应用重启后丢失。
您应该处理应用程序关闭事件并保存所需的数据,然后恢复所需的数据。
例如,您可以处理onPause()
要在其中保存数据并将所需数据存储在SharedPreferences
或文件或SQLite database
. onResume()
然后在方法中恢复该数据。
我建议您阅读有关 AndroidApps
和生命周期Activities
的信息Fragments
。
升级版:
您说您正在使用静态ArrayList
并在那里存储数据,当然应用程序重启后数据会丢失。因此,您需要将数据保存ArrayList
到file
或database
使用最简单的解决方案并将其存储在Bundle
.
例子:
/**
* Saving data
*/
@Override
public void onSaveInstanceState(Bundle savedInstanceState)
{
super.onSaveInstanceState(savedInstanceState);
// Here you can save your data
// If you want to store your ArrayList, it should implement Parselable
savedInstanceState.putParcelableArrayList("STORE_KEY", yourArrayListWhichShouldImplementParcelable);
}
/**
* Restoring data
*/
@Override
public onRestoreInstanceState(Bundle savedInstanceState)
{
super.onRestoreInstanceState(savedInstanceState);
yourArrayList = (YourArrayList) savedInstanceState.getParcelableArrayList("STORE_KEY");
}
像这样的东西
于 2013-03-25T10:09:02.757 回答