android:configChanges 当方向改变时调用 onCreate 中的异步 SQLite 调用

android:configChanges with an Async SQLite Call in onCreate being called when orientation changes

我正在用 SQLite 数据库的内容填充 ListView。在我的 StartList activity 中的 onCreate 方法中,我调用一个 AsyncSQLite 从 JSON url 读取数据并将数据添加到 SQlite数据库。

但每次我更改屏幕方向时,我的应用程序都会再次调用 AsyncSQLite 方法。我已将 android:configChanges="orientation|keyboardHidden|screenSize" 添加到我的 AndroidManifest.xml 中,但这似乎没有什么不同。

这是我的 onCreate 方法,来自 StartList activity:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_start_List);

    oslist.clear();
    oslist = new ArrayList<LinkedHashMap<String, String>>();
    new AsyncSQLite().execute();
}

这是我的 AndroidManifest.xml:

<activity
    android:name=".StartList"
    android:label="@string/title_activity_start_List"
    android:parentActivityName=".MainActivity"
    android:configChanges="orientation|keyboardHidden|screenSize">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".MainActivity" />
</activity>

我认为 onCreate 只应在创建 activity 时调用一次,但相反,每当我更改方向时都会调用它。

清理项目解决了我的问题。

要去 Build>Clean Project