我對我的應用程序有以下框架: 1.在後臺(隊列)中運行以發出請求並獲取異步響應的網絡線程。該線程在應用程序對象中啓動和停止,因此它將通過整個應用程序。 2.一個DataManager,它也是應用程序的成員,並且具有不同的DataManagers,用於從網絡中檢索的數據類型。數據管理器本身就是來自網絡響應的監聽者,所以在應用程序本身死亡之前它是安全的。 3.這是有問題的部分。我的一些適配器和我的活動的一部分是DataManagers的DataListeners,這意味着數據管理器會保留對它們的引用。作爲監聽器和內存泄漏的活動
當發生電話或其他電話事件時,我注意到該活動通常處於暫停狀態並且未被銷燬,因此會收到我的活動,這沒關係。當橫向\縱向改變時,問題就開始了。因爲我保持對應用程序綁定對象中的活動的引用,一方面活動不能被銷燬,但事件仍然到達偵聽器,只有錯誤的... 基本上我可以通過以下方式解決該問題:刪除onDestroy中的監聽器並保留配置布爾值來告訴我,請求已存在問題,我只需要放置一個監聽器並嘗試從數據管理器中檢索數據。
但是:-)我想知道android如何處理這種情況通常,如果這是一個服務運行。或者如果服務是使用綁定的本地服務,並將活動作爲監聽器傳遞給網絡事件,則會發生相同的事情,直到偵聽器不會被移除,活動就會泄露並繼續存在,但如果沒有它,則無法從網絡獲得回調... 一個意圖要求嚴重的數據(例如,位圖的系列化和無效化)
而anywa,假設我發送一個意向每個respose我得到,我怎麼得到意圖到活動(我知道的getIntent,但如果我得到另一個,不相關,我把它作爲'事件'嗎?)
我的想法正確..我認爲這將是我的方法,我有點認爲intents可以緩解任務。但我不知道它是否緩解或複製它。 – codeScriber 2010-11-27 16:10:18