什么是已弃用的 getSupportLoaderManager() 的适当替代品?
What is the appropriate replacement of deprecated getSupportLoaderManager()?
我了解到 getSupportLoaderManager 已被弃用。但我想打电话:
getSupportLoaderManager().initLoader(0, null, mRecipeLoaderManager);
应该用什么替代那个电话?
或者我仍然可以放心地使用 getSupportLoaderManager 吗?
如此处所述:Loaders
"Loaders have been deprecated as of Android P (API 28). The recommended option for dealing with loading data while handling the Activity and Fragment lifecycles is to use a combination of ViewModels and LiveData."
每当您看到 deprecated
时,直接转到 developer api reference site 并查看您正在寻找的 class 或函数,看看是否有等效的替代方案。
如果需要,您仍然可以使用 getSupportLoaderManager
:
android.support.v4.app.LoaderManager.getInstance(this).initLoader(0, null, this).forceLoad();
这里简单介绍一下如何用ViewModel替换Loader:
https://developer.android.com/jetpack/arch/viewmodel#loaders
那里的图形不言自明,我认为:
如需更详尽的解释,您可以阅读这篇博客post:
这个方法被弃用的原因是因为加载器已经从他们历史上的 Fragment
和 FragmentActivity
实现中分离出来,以便生活在他们自己的库中,这个库很快将成为一个可选的依赖项,并且它们的实现已在 架构组件 .
之上重写
检索 LoaderManager
实例的非捆绑方式是使用静态工厂方法:
其中 T
是 LifecycleOwner
和 ViewModelStoreOwner
的实例(主要实现是 FragmentActivity
和 Fragment
)。
我也遇到了这个问题,这段代码帮我解决了LoaderManager.getInstance(this).initLoader(0,null,mRecipeLoaderManager);
希望对你有帮助
我也遇到了同样的问题!
getSupportLoaderManger()
可以替换为LoaderManager.getInstance(this)
,后面的代码保持不变。所以,最后你的代码将变成:
LoaderManager.getInstance(this).initLoader(0, null, mRecipeLoaderManager);
可以参考Android官方文档:
https://developer.android.com/reference/androidx/fragment/app/FragmentActivity#getSupportLoaderManager()
我了解到 getSupportLoaderManager 已被弃用。但我想打电话:
getSupportLoaderManager().initLoader(0, null, mRecipeLoaderManager);
应该用什么替代那个电话? 或者我仍然可以放心地使用 getSupportLoaderManager 吗?
如此处所述:Loaders
"Loaders have been deprecated as of Android P (API 28). The recommended option for dealing with loading data while handling the Activity and Fragment lifecycles is to use a combination of ViewModels and LiveData."
每当您看到 deprecated
时,直接转到 developer api reference site 并查看您正在寻找的 class 或函数,看看是否有等效的替代方案。
如果需要,您仍然可以使用 getSupportLoaderManager
:
android.support.v4.app.LoaderManager.getInstance(this).initLoader(0, null, this).forceLoad();
这里简单介绍一下如何用ViewModel替换Loader:
https://developer.android.com/jetpack/arch/viewmodel#loaders
那里的图形不言自明,我认为:
如需更详尽的解释,您可以阅读这篇博客post:
这个方法被弃用的原因是因为加载器已经从他们历史上的 Fragment
和 FragmentActivity
实现中分离出来,以便生活在他们自己的库中,这个库很快将成为一个可选的依赖项,并且它们的实现已在 架构组件 .
检索 LoaderManager
实例的非捆绑方式是使用静态工厂方法:
其中 T
是 LifecycleOwner
和 ViewModelStoreOwner
的实例(主要实现是 FragmentActivity
和 Fragment
)。
我也遇到了这个问题,这段代码帮我解决了LoaderManager.getInstance(this).initLoader(0,null,mRecipeLoaderManager);
希望对你有帮助
我也遇到了同样的问题!
getSupportLoaderManger()
可以替换为LoaderManager.getInstance(this)
,后面的代码保持不变。所以,最后你的代码将变成:
LoaderManager.getInstance(this).initLoader(0, null, mRecipeLoaderManager);
可以参考Android官方文档: https://developer.android.com/reference/androidx/fragment/app/FragmentActivity#getSupportLoaderManager()