android - 为什么Loaders不能是非静态内部类?

标签 android android-loadermanager android-loader

当我尝试使用非静态内部 Loader 类时,出现以下运行时错误:

Object returned from onCreateLoader must not be a non-static inner member class

这个限制有什么意义?

最佳答案

this blog post on loaders 中所述,它们专门设计用于承受旋转变化(这通常会导致 Activity 被破坏并重新创建)。由于非静态内部类包含对其包含实例的隐式引用(即内部类将具有对第一个 Activity 的引用),因此这保证会在任何配置更改时产生内存泄漏。

关于android - 为什么Loaders不能是非静态内部类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31999869/

相关文章:

android - 加载完成后不调用 LoaderCallbacks.onLoadFinished()

java - Android - loadDataWithBaseURL

Crosswalk 中的 Android 构建错误

android - 如何将 AsyncTaskLoader 绑定(bind)到 Fragment 的生命周期?

android - CursorAdapter 和 FLAG_REGISTER_CONTENT_OBSERVER

android - Aquery vs ButterKnife 和 picasso

android - 如何在上下滚动时隐藏和取消隐藏 TextView

android - 如何在动态位置上动态显示图像

android - 在 android 2.2 中使用 Cursor Adapters 和 Content Provider 的正确方法是什么

android - 如何正确停止loader?