我有一个 Android 应用程序,其中有一个带有自定义适配器的ListView ,有些项目是静态的,有些是动态的(从 url 加载它们)。
它运行完美,没有错误,但是当我暂停我的应用程序并使用其他应用程序(如在 chrome 中冲浪)时,当我返回应用程序时,静态项目在那里,但动态项目消失了。
编辑:我正在使用 volley StringRequest 和 Gson 从 url 加载项目。
您必须存储获取的数据,您可以通过 2 种不同的方式实现此目的
您可以使用 onSaveInstanceState 和 onRestoreInstanceState 方法保存该数据并在返回应用程序时将其恢复
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
// save your date like this
savedInstanceState.putBoolean("MyBoolean", true);
savedInstanceState.putDouble("myDouble", 1.9);
savedInstanceState.putInt("MyInt", 1);
savedInstanceState.putString("MyString", "Welcome back to Android");
// etc.
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// Restore your date like this and assign it to your list or where ever you need
// This bundle has also been passed to onCreate.
boolean myBoolean = savedInstanceState.getBoolean("MyBoolean");
double myDouble = savedInstanceState.getDouble("myDouble");
int myInt = savedInstanceState.getInt("MyInt");
String myString = savedInstanceState.getString("MyString");
}
您可以将其存储在数据库中,并在您移至 onRestoreSaveInstance 时将其恢复
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// fetch data from database and assign it back to your UI
}