我有一個activity
與其中有一個async task
將做一些下載的東西。在downlaoding時它將顯示l oading dialog
。
我的問題是,當我在one orentiaon
中這樣做時,它對我很好。但是,當我下載時rotate
,它顯示window leaked
,並會在我的後期執行崩潰在 dialog.cancel
。
從我對它的研究中,我更瞭解它,因爲change in the context
當設備是rotated
。
那就是當device
是rotated
,activity
將是recreated
因此context
將是changed
。
但我創建了與舊的對話框,並wasn't the current context
。所以,當我取消它顯示錯誤
這是什麼解決方案,任何想法frnds。
我使用honeycomb
,我嘗試過,但fragment
但沒有得到一個很好的例子。我現在主要是想的是,
如果任何人都可以給我一些鏈接,這將是巨大的 加載對話框,同時旋轉設備
6
A
回答
3
首先:使用showDialog
法(there are a lot of examples in the official documentation)打開對話框。如果這樣做,該活動將負責解除關於銷燬的對話,並在活動重新創建後重新顯示它。
另外...如果對話框顯示進度條(不是輪子),您將需要在方向更改後更新對話框的進度。爲此,我建議使用onRetainNonConfigurationInstance
來返回對話框和/或活動本身的當前狀態。然後,您可以使用getLastNonConfigurationInstance
恢復該狀態。谷歌有關這兩種方法,如果你想看到的例子。
另一件事要記住:如果你正在更新的對話框中的/或從AsyncTask
任何其他UI元素的狀態,你必須意識到,活性重建之後,AsyncTask
可能指向錯誤UI參考。爲了解決這個問題,您可以創建代理類(代理設計模式),從當前UI元素中分離AsyncTask
進度通知。
-1
發生這種情況是因爲當設備方向更改時Activity重新創建。爲了禁用這個,你可以像這樣配置Activity。
<activity .... android:configChanges="orientation|keyboard"
...
>
+0
這不建議。見另一個答案。 – 2011-11-09 21:53:56
相關問題
- 1. Android的 - 避免對話框的設備旋轉後駁回
- 2. AsyncTask和對話框生存設備旋轉
- 3. 旋轉對話框和AlertDialog以外的固定設備方向
- 4. 設備旋轉時旋轉相機
- 5. 應用程序崩潰時打開編輯對話框和旋轉設備
- 6. 進度對話框應旋轉,直到gridview加載完成
- 7. 當我打開一個對話框並且設備旋轉時,應用程序崩潰,我的應用程序中的Android對話框在旋轉
- 8. android設備旋轉
- 9. 當設備旋轉
- 10. 設備旋轉/旋轉計數
- 11. 不旋轉設備的頁面旋轉
- 12. IOS旋轉設備不旋轉動畫
- 13. iOS:MKMapView加載時旋轉
- 14. 初始加載時旋轉
- 15. 設備旋轉後重新對焦UItextfield
- 16. OnCreate對話框和屏幕旋轉
- 17. 對話框在旋轉中消失
- 18. Android對話框旋轉問題。
- 19. 通過設備旋轉旋轉簡單的3d對象
- 20. 如何防止在RSS源加載時旋轉設備時出現錯誤
- 21. 初始加載時的simplemodal對話框
- 22. 加載時顯示對話框
- 23. MvvmCross - 設備旋轉時發生崩潰
- 24. 旋轉設備時需要編碼嗎?
- 25. 設備旋轉時的新視圖
- 26. 設備旋轉時如何縮放UIImageView?
- 27. 旋轉設備時保存緩存
- 28. 旋轉設備時隱藏UITabBar iPhone
- 29. Android設備旋轉時未檢測到
- 30. iOS的表格視圖只加載設備旋轉的數據
感謝** **克里斯蒂安爲你解答。我使用[ProgressDialog](http://developer.android.com/guide/topics/ui/dialogs.html#ProgressDialog),但是對於旋轉時崩潰。 – Jithin 2011-03-05 04:53:15
這是什麼**代理設計模式**。它的聲音很有趣。我對此一無所知。你可以提供一些鏈接 – Jithin 2011-03-05 04:54:41
看看[iosched](http://code.google.com/p/iosched/)應用程序的源代碼。它有一個如何使用'onRetainNonConfigurationInstance','getLastNonConfigurationInstance'以及代理設計模式的很好的例子。 – Cristian 2011-03-05 13:51:15