-1

我的问题是当我尝试在一小时后重新启动应用程序时,应用程序以空数据打开,我相信内核会在不终止进程的情况下删除资源。请帮助我.thx

4

2 回答 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并在那里存储数据,当然应用程序重启后数据会丢失。因此,您需要将数据保存ArrayListfiledatabase使用最简单的解决方案并将其存储在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 回答