在Android领域,碎片知道Android的生命周期,并且在重新创建活动时不会被销毁。正因为如此,我看到人们使用空片段来绕过Android生命周期的问题,破坏对后台任务的引用,并防止与保持对活动的引用相关的泄漏。
我想知道使用片段作为后台任务的钩子有多大的开销?我假设Android决定不销毁碎片,因为它们重新创建的成本很高(可能是错误的)。
奖金问题。有没有一种方法可以衡量这个成本?(也许可以实现替代方法并检查资源利用率)。
发布于 2016-02-25 19:48:38
你不应该在后台工作中使用“无头片段”。
正确的方法是根据需要完成的工作的持续时间和类型使用Loader
或Service
(或Intent Service
)。
在开销方面,我不认为有太多。你可以用这4种方法创建4个应用程序,如果你想要分析它们,但更好的方法是选择一种适合你试图解决的问题的方法。
发布于 2016-02-25 19:49:26
Do not use Fragment
s to keep tasks!这样做弊大于利。
如果您的任务运行时间足够长,以至于您不得不担心它们会被杀死,那么就在Service
中运行它们。
这正是Service
(或Loader
)的作用所在。Fragment
%s应该代表布局的一部分,而不是盲目使用。
如果存在一个有效的和预期的解决方案,就没有理由去折腾。
https://stackoverflow.com/questions/35636640
复制