0

ボタンのクリック ハンドラーでは、コンテンツ プロバイダーから ( を使用してgetContentResolver().query(...)) データを読み込み、そのデータをネットワーク リクエストで送信しています。このアプローチではメイン スレッドでクエリが発生するため、これをメイン UI スレッドから移動したいと考えています。

LoaderManager を使用して でネットワーク リクエストを起動できると思いますが、ネットワーク リクエストを再度起動したくないため、(そのローダー ID に対して) 二度と呼び出されonLoadFinished()たくないという問題があります。onLoadFinished()たとえば、画面の向き。

では、一度だけ実行したいクエリに LoaderManager を使用するにはどうすればよいでしょうか?

4

2 に答える 2

0

で、 (または該当する場合)onLoadFinished()を呼び出すことができます。これにより、ローダーの自動リロードが停止します。また、呼び出している場所が再度実行されないように保護する必要がある場合もあります(たとえば、ブール変数を保存することにより)。getLoaderManager().destroyLoader(loaderId)getSupportLoaderManager()initLoaderonSaveInstanceState

于 2013-08-26T04:50:48.190 に答える