GetSupportLoaderManagerが非推奨であることを知りました。しかし、私は電話したい:
getSupportLoaderManager().initLoader(0, null, mRecipeLoaderManager);
その呼び出しに代わるものは何ですか?または、心配せずにgetSupportLoaderManagerを使用できますか?
ここで述べたように: Loaders
「ローダーはAndroid P(API 28)で非推奨になりました。アクティビティおよびフラグメントのライフサイクルを処理しながらデータをロードするための推奨オプションは、ViewModelsとLiveDataの組み合わせを使用することです。
廃止されたものがある場合は、開発者サイトに直接アクセスして、探しているクラスまたは関数を確認すると、既にdeprecated
としてマークされており、より良い代替手段があります。
このメソッドが非推奨になった理由は、ローダーが、すぐにオプションの依存関係となる独自のライブラリに住むために、歴史的なFragment
およびFragmentActivity
実装からアンバンドルされたためです。 アーキテクチャコンポーネントの上に書き直されました。
LoaderManager
インスタンスを取得するバンドルされていない方法は、静的ファクトリーメソッドを使用することです。
ここで、T
はLifecycleOwner
とViewModelStoreOwner
の両方のインスタンスです(主な実装はFragmentActivity
とFragment
です)。
私もこの問題を抱えており、このコードは私のためにそれを解決しましたLoaderManager.getInstance(this).initLoader(0,null,mRecipeLoaderManager);
私はそれが役立つことを願っています
Android.support.v4.app.LoaderManager.getInstance(this).initLoader(0, null, this).forceLoad();
が必要な場合は、getSupportLoaderManager
を引き続き使用できます。
ここでは、ローダーをViewModelに置き換える方法について簡単に説明します。
https://developer.Android.com/jetpack/Arch/viewmodel#loaders
そこにあるグラフィックは一目瞭然です。
より詳細な説明については、次のブログ投稿をご覧ください。