我目前正在尝试将现有的Android应用转换为使用Fragments。我的活动所做的主要工作有时需要一段时间,所以我实现了一些Threads作为回调处理程序 - 我被引导相信这是使用这些和进度对话框的最佳实践。
希望这是有道理的。
我的问题是:我应该将这些内部类移动到我的Fragment类中,还是将它们保存在我的Activity类中?
答案 0 :(得分:1)
希望这有帮助。
问候!
答案 1 :(得分:1)
这取决于你拥有多少片段以及你尝试用这些线程做什么。虽然没有一般规则,但在做出决定时需要考虑两件事。
(1)如果您正在执行类似下载将在多个片段中使用的信息(例如在ViewPager
或Tab
设置中),则可能需要进行回调以FragmentActivity
方式,您可以轻松地将该信息分发给将要处理用户界面的Fragment
。想到的另一个例子是获取位置数据。如果将在整个应用程序中使用位置数据,并且您的FragmentActivity
正在托管多个片段,那么将信息放在一个位置并且只是单独更新片段会更有意义。
(2)如果您使用AsyncTask
之类的内容进行一次性下载,发布或特定片段特有的其他内容,那么将其本地化为该片段并没有错。事实上,在这种情况下,将任务卸载到FragmentActivity
而不是完成任务本地效率会降低效率。
真的没有“正确”的答案。只是一个关于你的应用程序的结构以及你想要实现的内容的问题。
答案 2 :(得分:0)
没有硬性规定,但我喜欢将它们放在最自然适合的范围内。如果长时间运行的任务的结果仅在启动它的片段中有用,那么它将存在于片段中。如果任务可能影响多个片段,那么它可能会存在于活动中。