将处理程序线程类放在片段或活动类中是最佳做法吗?

时间:2013-08-21 17:58:40

标签: android android-fragments

我目前正在尝试将现有的Android应用转换为使用Fragments。我的活动所做的主要工作有时需要一段时间,所以我实现了一些Threads作为回调处理程序 - 我被引导相信这是使用这些和进度对话框的最佳实践。

希望这是有道理的。

我的问题是:我应该将这些内部类移动到我的Fragment类中,还是将它们保存在我的Activity类中?

3 个答案:

答案 0 :(得分:1)

实际上软件的最佳实践有点不同,首先你需要知道软件中没有任何“硬规则”,关键字是“所有取决于(取自书籍语用思维和学习) “因此,这一切都取决于你想要什么和你需要什么,你应该把事情放在平衡点上,知道哪里对你更好,但回到一般的最佳做法,最好的办法是业务模型类与Fragment / Activity或任何其他Android组件完全分离,实际上你应该有一个Model Class和一个Controller类,它们都应该操纵/填充这些元素中的数据和视图... < / p>

希望这有帮助。

问候!

答案 1 :(得分:1)

这取决于你拥有多少片段以及你尝试用这些线程做什么。虽然没有一般规则,但在做出决定时需要考虑两件事。

(1)如果您正在执行类似下载将在多个片段中使用的信息(例如在ViewPagerTab设置中),则可能需要进行回调以FragmentActivity方式,您可以轻松地将该信息分发给将要处理用户界面的Fragment。想到的另一个例子是获取位置数据。如果将在整个应用程序中使用位置数据,并且您的FragmentActivity正在托管多个片段,那么将信息放在一个位置并且只是单独更新片段会更有意义。

(2)如果您使用AsyncTask之类的内容进行一次性下载,发布或特定片段特有的其他内容,那么将其本地化为该片段并没有错。事实上,在这种情况下,将任务卸载到FragmentActivity而不是完成任务本地效率会降低效率。

真的没有“正确”的答案。只是一个关于你的应用程序的结构以及你想要实现的内容的问题。

答案 2 :(得分:0)

没有硬性规定,但我喜欢将它们放在最自然适合的范围内。如果长时间运行的任务的结果仅在启动它的片段中有用,那么它将存在于片段中。如果任务可能影响多个片段,那么它可能会存在于活动中。