フラグメントとコンテンツ プロバイダーを使用してローカルの sqlite データベースにアクセスする Android アプリがあります。リストビューは、表示がクエリ結果に基づくように、複数のデータベース クエリに依存することがよくあります。3 つのカーソルローダーがあると仮定すると、ローダー 3 を実行する前にローダー 1 と 2 の両方が完了していることを確認するにはどうすればよいですか?
1239 次
1 に答える
1
カウンター ( ) で開始されたすべてのローダーを追跡し、protected int loadersToRun,loadersCompleted=0;
それぞれのonLoadFinished
関数を呼び出します。
public void checkLoadersFinished(){
loadersCompleted++
if(loadersCompleted==loadersToRun){
//Start loader 3
loadersCompleted=0;
}
}
物事を動的に機能させる必要がある場合は、 の一連のローダー ID にデフォルトのケースを使用し、それを実行することで実現できonLoadFinished
ますcheckLoadersFinished
。Treeset を使用してローダーごとに一意の ID を生成し、それらを追跡して完了時に削除します。
于 2012-07-10T20:20:13.280 に答える