繁体   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