[英]Asynctask in Fragment or Parent Activity?
我有一個場景,我不知道要走哪條路。
腳本
該應用程序有一個Home活動,顯示各種片段。 片段中的數據可以來自Web或本地數據庫,並使用asynctask進行檢索。
從我看到的,我有兩個選擇:
將Asynctask放入父活動中,然后使用fragment.newInstance(parameters)
將結果傳遞給片段。 但是,如果在我的asynctask中我需要更新片段的進度或一些信息,每次我都必須使用新的參數集調用newInstance。
添加片段並將asynctask放入其中,這樣當需要進度時,我可以更新片段的視圖,因為我可以訪問它們+當asynctask完成時,我可以用信息填充列表。
什么是正確的方法?
LE:實際上對於第1點來更新片段我在父活動中使用findFragmentById
找到它后可以調用片段的公共方法
如果您有多個任務,更好的方法是使用IntentService: http : //mobile.tutsplus.com/tutorials/android/android-fundamentals-intentservice-basics/
您可以更好地控制要求的內容以及要取消的內容。
我會采用第二種方法。
我的主要原因是避免在AsyncTask工作時屏幕方向改變可能發生的問題。
我會采用方法2,但更進一步。
有一個單獨的片段來運行您的異步任務。 這樣,您可以處理任何配置更改(不僅僅是旋轉屏幕)而不會出現任何問題。
在另一個片段中,您可以顯示數據。 您可以通過回調將數據從異步任務片段傳遞到活動,並讓活動調用顯示片段中的方法來更新數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.