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
。
我正在用 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
。