我的问题是当我试图在一小时后重新启动应用程序时,应用程序打开了空数据,我相信内核删除了资源而没有杀死进程。请帮助我.thx
答案 0 :(得分:0)
http://developer.android.com/guide/topics/data/data-storage.html
答案 1 :(得分:0)
“空数据”是什么意思? 如果你的意思是一些动态变量,当然他们的状态将在app重启后丢失。
您应该处理应用关闭事件并保存所需的数据,然后恢复所需的数据。
例如,您可以处理活动的onPause()
方法,以便在SharedPreferences
或文件或SQLite database
中保存数据并存储所需的数据。然后在onResume()
方法中恢复该数据。
我建议您阅读有关Android Apps
,Activities
和Fragments
生命周期的内容。
UPD:
你说你正在使用静态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");
}
像这样的东西