在Android领域,Fragments了解Android生命周期,并且在重新创建活动时不会被销毁。因此,我看到人们使用空片段来解决Android生命周期中的问题,破坏对后台任务的引用,并防止与保持对活动的引用相关的泄漏。
我想知道使用Fragments作为后台任务挂钩有多少开销?我认为Android决定不销毁片段,因为它们的重建成本很高(可能是错误的)。
奖金问题。有没有办法衡量这个成本? (可能实施替代方法并检查资源利用率)。
答案 0 :(得分:1)
你不应该使用无头片段'背景工作。
正确的方法是使用Loader
或Service
(或Intent Service
),具体取决于需要完成的工作的持续时间和类型。
就开销而言,我并不认为有太多。您可以使用这4种方法创建4个应用程序,并根据需要对其进行分析,但更好的方法是选择适合您要解决的问题的方法。
答案 1 :(得分:1)
不使用Fragment
来保持任务活着!
这比使用更有害。
如果您的任务运行时间足够长,您必须担心它们是否会被杀死,请在Service
中运行它们。
这正是Service
(或Loader
)的用途。 Fragment
应代表您布局的一部分,而不是无头使用。
如果存在有效的解决方案,没有理由不知道。