2011-07-09 34 views
0

當發生配置更改時應如何處理AsyncTasks。我通過這些任務訪問ReSTful API,並且在需要取回數據然後將其顯示給用戶的情況下,我遇到了問題。如果發生配置更改(如方向更改),則「活動」無法正確更新。我相信AsyncTask正在更新已經被破壞的舊活動。我發現了一個解決方案,它需要在Application類中創建一個布爾值,用於跟蹤我關心的AsyncTask是否仍在運行,然後在循環中取消該偵聽器,然後在新的Activity中重新創建它,然後當AsyncTask完成後,監聽器將數據顯示給用戶。這很有效,但它需要很多額外功能並需要大量管理。有沒有一種方法可以將異步任務綁定到活動的新實例。或者抽象出我已經完成的工作,所以它不需要爲每個任務提供儘可能多的管理。 謝謝Android AsycTask和更改

回答

0

我也遇到過很多困難,我發現的最佳解決方案是將android:configChanges="orientation"添加到您在AndroidManifest.xml文件中的活動中。這將阻止您的活動在方向更改時被銷燬和重新創建。

+0

是的,但是如果您的活動除了方向更改之外無論如何都會中斷,則無法正確處理。如果有電話進來,而某些事情正在進行,那麼它將無法正常工作。 – user807624

+0

你說得對。赫爾曼的回答可能是你在找他們。 –