【问题标题】:Loaders in fragment - will the fragment leak?片段中的加载器 - 片段会泄漏吗?
【发布时间】:2016-09-27 05:10:25
【问题描述】:

考虑 android 教程中的 this 示例,

getLoaderManager().initLoader(0, null, this);

被称为onActivityCreated,给出了loaderCursorLoaderListFragment.this实例,据我所知,没有保证给定片段生命周期等于Activity因此LoaderManager生命周期。那么,如果在Activity 仍然存在的情况下删除片段,是否不会导致内存泄漏?

如果是,那么他们应该如何纠正这个例子?

【问题讨论】:

  • 很好的观察结果,但是如果在 Fragment 被销毁时 Activity 仍然处于活动状态,那么加载器应该被销毁,因为它是在 onActivityCreated 中初始化的。

标签: android android-fragments memory-leaks


【解决方案1】:

当绑定的 Fragment 或 Activity 销毁时,Loaders 被销毁并清理。即,如果您将 Fragment 实例传递给 initLoader(),那么当该 Fragment 实例被销毁时,Loader 将被销毁。

参考:

https://medium.com/google-developers/making-loading-data-on-android-lifecycle-aware-897e12760832#.ai7whgsv4

装载机不会永远存在。它们将被自动清理 当请求的 Activity 或 Fragment 被永久销毁时。 这意味着没有挥之不去的、不必要的负载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2013-11-30
    • 2018-03-24
    • 2017-07-09
    • 2019-12-22
    • 1970-01-01
    相关资源
    最近更新 更多