1

我有一个 Android 应用程序,其中有一个带有自定义适配器的ListView ,有些项目是静态的,有些是动态的(从 url 加载它们)。

它运行完美,没有错误,但是当我暂停我的应用程序并使用其他应用程序(如在 chrome 中冲浪)时,当我返回应用程序时,静态项目在那里,但动态项目消失了。

编辑:我正在使用 volley StringRequest 和 Gson 从 url 加载项目。

4

1 回答 1

0

您必须存储获取的数据,您可以通过 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
}
于 2015-11-18T09:58:21.350 回答