gpt4 book ai didi

android - v4.app.Fragment 中的 getLoaderManger() 和 getActivity().getSupportLoaderManager() 之间的区别

转载 作者:搜寻专家 更新时间:2023-11-01 07:53:46 26 4
gpt4 key购买 nike

getLoaderManager() 来自 android.support.v4.app.FragmentgetSupportLoaderManager() 来自 android.support.v4 .app.FragmentActivity

他们返回同样的东西吗?我在文档中找不到它。如果不是,哪个应该与 fragment 内部的支持库一起使用?

最佳答案

它们返回完全相同的东西 - android.support.v4.app.LoaderManager

来自源代码:v4.app.Fragment实际上是记忆宿主 Activity :

 public LoaderManager getLoaderManager() {
if (mLoaderManager != null) {
return mLoaderManager;
}
if (mActivity == null) {
throw new IllegalStateException(...);
}

mLoaderManager = mActivity.getLoaderManager(...);
return mLoaderManager;
}

您的 Activity 可能正在扩展 v4.app.FragmentActivity并且您可以看到 getLoaderManager() 是一个私有(private)方法,它也被 getSupportLoaderManager() 调用:

public LoaderManager getSupportLoaderManager() {
...
mLoaderManager = getLoaderManager(...);
return mLoaderManager;
}

所以:

  • 要使用v4.app.Fragment,您需要继承v4.app.FragmentActivity(AppCompatActivity只是一个例子);
  • v4.app.Fragment.getLoaderManager()v4.app.FragmentActivity.getSupportLoaderManager() 最终都调用了完全相同的方法,v4。 app.FragmentActivity.getLoaderManager()。我很确定两者之间没有任何区别。

关于android - v4.app.Fragment 中的 getLoaderManger() 和 getActivity().getSupportLoaderManager() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31088404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com