0

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

希望这是有道理的。

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

4

3 回答 3

1

实际上,一般软件的最佳实践有点不同,首先你需要知道软件中的任何东西都没有“硬规则”,关键字是“All Depends(取自Pragmatic Thinking and Learning)”,并且作为这样,这完全取决于您想要什么和需要什么,您应该权衡一下,以了解哪里更适合您,但是对于这些情况,最好回到最佳实践,最好是拥有一个商业模型课程与 Fragment/Activity 或任何其他 android 组件完全分离,您实际上应该有一个模型类和一个控制器类,它们都应该操作/填充这些元素中的数据和视图......

希望这可以帮助。

问候!

于 2013-08-21T18:08:30.923 回答
1

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

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

(2) 如果您使用AsyncTask一次性下载、帖子或其他特定片段独有的东西,将其本地化到该片段没有任何问题。事实上,在这种情况下,将任务卸载给您的效率会低于FragmentActivity在本地完成任务的效率。

真的没有“正确”的答案。只是关于您的应用程序的结构以及您要完成什么的问题。

于 2013-08-21T18:09:56.053 回答
0

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

于 2013-08-21T18:07:21.227 回答