簡體   English   中英

片段或父活動中的Asynctask?

[英]Asynctask in Fragment or Parent Activity?

我有一個場景,我不知道要走哪條路。

腳本

該應用程序有一個Home活動,顯示各種片段。 片段中的數據可以來自Web或本地數據庫,並使用asynctask進行檢索。

從我看到的,我有兩個選擇:

  1. 將Asynctask放入父活動中,然后使用fragment.newInstance(parameters)將結果傳遞給片段。 但是,如果在我的asynctask中我需要更新片段的進度或一些信息,每次我都必須使用新的參數集調用newInstance。

  2. 添加片段並將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM