2016-09-09 8 views
0

私たちのアプリケーションでは、受信したメッセージと更新されたメッセージを処理する2つの非同期メソッドがあります。サーバーから正しく受信します。まず、メッセージと更新メッセージ。それらは別々に処理されますが、最終的には両方ともデータベースのメッセージを更新するようになります。問題は、時々更新されたメッセージがメッセージより速く処理され、データがデータベースに不正に書き込まれることです。更新されたメッセージは古いメッセージで上書きされます。Android RXは2つの異なるプロセスの同期実行が必要

どのように同期して異なる2つの観測値を処理し、サーバーから受信した順序でデータベースの更新を制御することができます。

答えて

1
messageApi.getMessage() 
    .flatMap(message -> { 
     saveMessage(message); 
     return messageApi.getUpdatedMessage(); 
    }) 
    .subscribe(message -> { 
     saveMessage(message); 
    }); 

あなたのケースには適切ですか?

関連する問題