ループでは、コールバックを持つメソッドを複数回呼び出す必要があります。すべてが終わったとき、どうすればわかるのですか?ループ内のコールバック:すべて終了したときを知る方法?
@Override
public void onObjectsMustBeParsed(String parsableObjects) {
String[] parsedObjects = parsableObjects.split(",");
for (String parsedObject : parsedObjects){
loadObject(parsedObject, new LoadObjectCallback() {
@Override
public void onObjectLoaded(Object object) {
//Object Loaded
saveObject(object, new SaveObjectCallback() {
@Override
public void onObjectSaved() {
// Object saved
}
@Override
public void onError() {
// Object not saved
}
});
}
@Override
public void onError(Throwable throwable) {
// Object not Loaded
}
});
}
}
// => do something when all processing of parsed-objects are finished
// do something if all is ok
// do other thing if partially ok
注:データを操作するために、私はローカルとリモートのデータソースを持つリポジトリを使用します。このコードはリポジトリの一部です。
実行中のタスクの量を示す揮発性の整数を追加します。タスクを開始すると増加します。 onObjectLoadedまたはonObjectSavedの値の減少。その後、すべてのデクリメント後に、タスクカウンタがnulであるかどうかをチェックします。 – greenapps
@greenapps Ouahかなりクールなソリューション!しかし私は私のレベルのコーディングですべてを理解しているのか分かりません。私は揮発性整数を知らなかった。そして、あなたは「すべての減少の後に」と言います。 – compte14031879
@greenapps各コールバックで「すべての減少チェック後」を意味しますか? – compte14031879