WorkManagerステータスを同期的に取得する方法

カルロスエモンズ

WorkManager Alpha05を使用しています。

他のアプリケーションの要求に応じてタスクをキューに入れるサービスを開発しています。

2つの方法があります。

  1. createTask(名前とデータセットを指定して新しいタスクを作成すると、IDが返されます)
  2. checkTaskStatus(アプリケーションは、ID、タスクのステータスを指定してサービスに問い合わせます)

通信は、メッセージを使用してバインドされたサービスを介して行われます。つまり、クライアントとサービスの両方に、情報を伝達するための正しい実装があります。

方法1は正常に機能しています。

方法2に問題があります。

 WorkManager.getInstance().getStatusById(taskID)
            .observe(LifecycleOwner, Observer {
                status -> if (status !=null){
                    val myResult = status.state.toString()
                    statusString = myResult
                    Log.d("Task Status",myResult)
                }
            })

オブザーバーはステータスを正しくログに記録していますが、そのメッセージをクライアントに送り返すことができません。同期してステータスを確認する方法はありますか?

タスクをLiveDataにアタッチする必要はありません。

デビッド・スカルダ

SynchronousWorkManagerは10月11日に削除されたようです。

WorkManager.synchronous()とWorkContinuation.synchronous()および関連するすべてのメソッドを削除しました。APIの多くのメソッドの戻り値の型としてListenableFutureを追加しました。これはAPIの重大な変更です。

ListenableFutureの使用方法:

ListenableFuturesを使用して、同期的に取得および監視できるようになりました。たとえば、voidを返すために使用されるWorkManager.enqueue()。これで、ListenableFutureが返されます。操作が完了したら、ListenableFuture.addListener(Runnable、Executor)またはListenableFuture.get()を呼び出してコードを実行できます。

詳細については、こちらをご覧ください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

FirebaseFirestore-Androidで同期ステータスを取得する

分類Dev

ChromiumFX-HTMLソースを同期的に取得する方法は?

分類Dev

Java jersey glassfish(payara)rest:非同期メソッドの実行に関するステータスを取得します

分類Dev

Dropboxファイルの同期ステータスを取得するコマンド

分類Dev

非同期実行の完全なスタックトレースを取得する方法

分類Dev

グーグルスピーチ非同期からデータを取得する方法

分類Dev

DelphiIndyでメッセージステータスの更新を同期する方法

分類Dev

NSURLResponse-ステータスコードを取得する方法

分類Dev

curlpostでHTTPステータスコードを取得する方法

分類Dev

非同期タスクを同期的に実行する方法は?

分類Dev

アクティビティ開始時に非同期タスクのステータスを確認(リッスン)する方法

分類Dev

情報を保持せずにFirebaseの同期ステータスを維持する

分類Dev

データテキストボックスを取得する方法

分類Dev

データテキストボックスを取得する方法

分類Dev

応答テキストを非同期的に取得するには?

分類Dev

dbunit実際のデータベースをテストデータベースと同期する方法

分類Dev

ブースト子プロセスの非同期実行によってインスタンスカウンターをテストする方法は?

分類Dev

mocahユニットテストケースを同期的に実行する方法は?

分類Dev

非同期ソースを使用してカスタムウィジェットのデータを取得する方法

分類Dev

mysqlテーブルからデータを取得するときにスペースを無視する方法

分類Dev

非同期タスクから結果を取得する方法

分類Dev

F#で非同期タスクの結果を取得する方法

分類Dev

Androidで非同期タスクの結果を取得する方法

分類Dev

非同期コードを使用するときに意味のあるスタックトレースを取得する

分類Dev

ターミナルの起動時にテキストを取得する方法

分類Dev

Frisby.jsテストを取得して同期的に実行する

分類Dev

gdbの終了後にステータスを取得する

分類Dev

変更後にvirtuemartの注文ステータスを取得する

分類Dev

ロードされる前にページのステータスコードを取得する方法

Related 関連記事

  1. 1

    FirebaseFirestore-Androidで同期ステータスを取得する

  2. 2

    ChromiumFX-HTMLソースを同期的に取得する方法は?

  3. 3

    Java jersey glassfish(payara)rest:非同期メソッドの実行に関するステータスを取得します

  4. 4

    Dropboxファイルの同期ステータスを取得するコマンド

  5. 5

    非同期実行の完全なスタックトレースを取得する方法

  6. 6

    グーグルスピーチ非同期からデータを取得する方法

  7. 7

    DelphiIndyでメッセージステータスの更新を同期する方法

  8. 8

    NSURLResponse-ステータスコードを取得する方法

  9. 9

    curlpostでHTTPステータスコードを取得する方法

  10. 10

    非同期タスクを同期的に実行する方法は?

  11. 11

    アクティビティ開始時に非同期タスクのステータスを確認(リッスン)する方法

  12. 12

    情報を保持せずにFirebaseの同期ステータスを維持する

  13. 13

    データテキストボックスを取得する方法

  14. 14

    データテキストボックスを取得する方法

  15. 15

    応答テキストを非同期的に取得するには?

  16. 16

    dbunit実際のデータベースをテストデータベースと同期する方法

  17. 17

    ブースト子プロセスの非同期実行によってインスタンスカウンターをテストする方法は?

  18. 18

    mocahユニットテストケースを同期的に実行する方法は?

  19. 19

    非同期ソースを使用してカスタムウィジェットのデータを取得する方法

  20. 20

    mysqlテーブルからデータを取得するときにスペースを無視する方法

  21. 21

    非同期タスクから結果を取得する方法

  22. 22

    F#で非同期タスクの結果を取得する方法

  23. 23

    Androidで非同期タスクの結果を取得する方法

  24. 24

    非同期コードを使用するときに意味のあるスタックトレースを取得する

  25. 25

    ターミナルの起動時にテキストを取得する方法

  26. 26

    Frisby.jsテストを取得して同期的に実行する

  27. 27

    gdbの終了後にステータスを取得する

  28. 28

    変更後にvirtuemartの注文ステータスを取得する

  29. 29

    ロードされる前にページのステータスコードを取得する方法

ホットタグ

アーカイブ