bugfix> android > 投稿

オブジェクトを部屋に挿入し、rxjava2の方法でrowIdを取得する適切なアプローチが必要です。たとえば、Bodyエンティティがあります

   long insertBody(Body body);

ビューモデルで

   Body body = new Body(contactId, msgText);
    getCompositeDisposable().add(
            Single.fromCallable(() -> getDataSource().insertBody(body))
                    .subscribeOn(getSchedulerProvider().io())
                    .observeOn(getSchedulerProvider().ui())
                    .subscribe(bodyId -> onContinueNewMessage(msgId, conversationId, bodyId,
                            forwardBodyId, replyMsgId, createdTimestamp), Timber::e)
    );

質問は、bodyオブジェクトを作成し、rowIdを複数の場所で取得するとどうなりますか? rxjavaの方法でbodyを挿入し、Singleのように戻るメソッドが必要です。事前に感謝します。

回答 1 件
  • add() 内にあるコードを統合できます  メソッドに。

    例えば:

    public class Example {
        public static Single<Integer> insertBodySingle(Body body, DataSource dataSource) {
            return Single.fromCallable(() -> dataSource.insertBody(body));
        }
        public static Single<Integer> insertBodySingleThreaded(Body body, DataSource dataSource) {
            return insertBodySingle(body, dataSource)
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread());
        }
    }
    
    

    次に、次のようにこれらを使用できます。

    Example.insertBodySingle(body, dataSource).subscribe(bodyId -> )
    
    

あなたの答え