でのベストプラクティスを呼び出します。例1は非常に厄介で、メンバーboolとは醜いですが、動作します。複数の非同期は、私は特定のアクティビティ/フラグメントを開始する前に、だから、複数の非同期呼び出しが終了する必要があり、例1のための短い&クリーナーソリューションを必要とAndroidの
私はGoogle Tasks APIの使用を検討していました。しかし、私はgoogle-services.jsonを追加し、 "Google Sign-in"、 "Analytics"、または "Cloud messaging"のいずれかに接続する必要があります。より良い方法がなければなりませんか、これは正しい方法ですか?
例1:タスクAPIで
boolean mIsFirstDone = false;
boolean mIsSecondDone = false;
boolean mAlreadyDone = false;
private void prepareSomeData() {
dataManager.requestSomeContent(new ApiCallback() {
@Override
public void onSuccess(final Object object) {
mIsFirstDone = true;
if(mIsFirstDone && mIsSecondDone && !mAlreadyDone) {
mAlreadyDone = true;
doSomething();
}
}
});
}
private void prepareSomeSettings() {
dataManager.requestSomeSettings(new ApiCallback() {
@Override
public void onSuccess(final Object object) {
mIsSecondDone = true;
if(mIsFirstDone && mIsSecondDone && !mAlreadyDone) {
mAlreadyDone = true;
doSomething();
}
}
});
}
:
Tasks.whenAll(SomeDataTask, SomeSettingsTask).addOnSuccessListener(executor, new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void v) {
doSomething();
}
}).addOnFailureListener(executor, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
});
Thnx!私は週末にこれを調べます。私は恐らくRxJavaを理解するのに時間がかかるでしょう:)。 –
は最終的に、あなたがそれを好きかどうか、それに移行します:Dあなたはあなたの質問への回答によって、既にそれを見ることができます;)私はあなたが他の許容可能な答えが、rxjavaを推薦持つものを買ってあげることはよく分かりません。 – tompadre
私は、少し待っていますが、私はそれが特にAndroid向けGoogleがあるので、驚いタスクAPIが良いオプションではありませんよ。 –