Android:应用程序使用空数据重新启动

时间:2013-03-25 09:54:20

标签: android

我的问题是当我试图在一小时后重新启动应用程序时,应用程序打开了空数据,我相信内核删除了资源而没有杀死进程。请帮助我.thx

2 个答案:

答案 0 :(得分:0)

我猜你必须将数据存储在某种持久存储中。 Android平台上可用的选项很少:

http://developer.android.com/guide/topics/data/data-storage.html

答案 1 :(得分:0)

“空数据”是什么意思?  如果你的意思是一些动态变量,当然他们的状态将在app重启后丢失。

您应该处理应用关闭事件并保存所需的数据,然后恢复所需的数据。

例如,您可以处理活动的onPause()方法,以便在SharedPreferences或文件或SQLite database中保存数据并存储所需的数据。然后在onResume()方法中恢复该数据。

我建议您阅读有关Android AppsActivitiesFragments生命周期的内容。

UPD:

你说你正在使用静态ArrayList并在那里存储数据,当然重启应用后数据会丢失。因此,您需要将数据从ArrayList保存到filedatabase,或使用最简单的解决方案并将其存储在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");
}

像这样的东西