3
我正在寫一個活動,它從服務器加載數據並使用ArrayAdapter將其顯示爲列表。爲此,我展示了一個進度對話框,即加載,同時從服務器加載所有數據。然後我在處理程序中關閉對話框。我的問題是,當我改變方向時,再次顯示進度對話框,這是不需要的,因爲所有的數據已經顯示出來了?如何處理方向更改時的活動?
我正在寫一個活動,它從服務器加載數據並使用ArrayAdapter將其顯示爲列表。爲此,我展示了一個進度對話框,即加載,同時從服務器加載所有數據。然後我在處理程序中關閉對話框。我的問題是,當我改變方向時,再次顯示進度對話框,這是不需要的,因爲所有的數據已經顯示出來了?如何處理方向更改時的活動?
我會說你有兩個選擇:
要麼你強迫你的活動不能夠改變方向:
<activity android:name="MainActivity" android:configChanges="keyboardHidden|orientation">
在你的清單(documentation),它會告訴系統要自己處理方向變化,在這種情況下,你不會做任何事情。但是,您寧願在onPause()
和onSaveInstanceState()
中添加一些代碼,因爲當您收到電話時,此活動可能會被Android中斷。所以你需要處理一些保存。
或者,您選擇防止顯示已經顯示的對話框,或者當您的後臺線程正在運行時。這很容易,你使用AsyncTask作爲你的下載部分,因爲你可以使用AsyncTask.getStatus這將返回the status of the task。如果它已處於完成狀態,則必須取消對話框。
謝謝你sephy – Srinivas 2010-08-09 10:25:06
我的問題是?如何避免顯示進度對話框,我在OnCreate()中顯示。解散對話。我改變方向,再次活動重新創建,所以對話框再次顯示?如何避免它? – Srinivas 2010-08-09 10:27:02
哦,那麼你必須從asynctask檢查「完成」狀態否? – Sephy 2010-08-09 10:40:01