中保存活動數據我google了很多,但現在我決定問..Android的屏幕旋轉
我的活動只做一件簡單的事情 - 它下載使用的AsyncTask來自互聯網的圖片。
但是有一個很大的問題,那我不知道,該如何解決..
1]用戶的AsyncTask已經下載的圖片。我應該如何處理這種屏幕旋轉後旋轉屏幕?活動重新創建後臨時保存圖片的位置在哪裏?
我不希望鎖定屏幕方向(機器人:screenOrientation =「風景」)或自己處理它(機器人:configChanges =「方向」)..
我只是想救圖片的地方..
我知道它可以通過使用onRetainNonConfigurationInstance()和getLastNonConfigurationInstance()來完成,但兩者現在已被棄用。 Bundle不適用於圖像,因爲它是爲String(可序列化)數據生成的。我可以將圖片保存到數據庫或在某處存檔,但這不是必需的。我在某處讀過,可以通過Loader完成,但我不知道如何?可能嗎?
2.]用戶在期間旋轉屏幕AsyncTask正在下載圖片。
我想AsyncTask繼續下載。下載完成後,AsyncTask應將圖像保存到onPostExecute方法中的新(重新創建的)活動中。
我認爲如果AsyncTask是內部類的活動,它的工作..?但是如果我不想讓它成爲內部類,我必須保存對活動的引用,例如在變量中。但是,如果我將Activity的引用作爲AsyncTask的構造函數的參數發送,並且在屏幕旋轉後重新創建Activity,則AsyncTask中的變量確實會引用原始活動,因此新的變量不知道下載的圖片,並且必須重新開始下載..
或者是AsyncTask下載圖像的不好選擇?我應該使用別的東西嗎?服務?
那麼..如何解決這些問題?我相信很多應用程序開發人員也必須解決這個問題..但是這對我來說都是希臘語的:但是這對我來說都是希臘語:(
「此方法已棄用。改爲使用新的Fragment API setRetainInstance(boolean);「也許試試看Frament API?http://developer.android.com/reference/android/app/Fragment.html – javajavajava 2012-07-09 21:16:28
@ user1454749那麼老版本的Android呢?一個我們仍然在Android 2.x – Izkata 2012-07-09 21:37:51
是的,我注意到這一點ofcourse ..但它總是更好地看到解決方案的例子..尤其是如果你是初學者... – 2012-07-09 21:37:57