問題タブ [workmanagers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - WorkEventを例外で完了するときにメインスレッドに通知する方法は?
私はIBM WorkManager (v8.0.0)を使用して、メイン スレッドとは非同期の作業を行っています。
このために、次のコードを使用します。
WorkEvent
が例外なく完了している限り、これは非常にうまく機能します。しかし、それが例外で完了したとき、メインスレッドに通知して、それ以上の WorkItems をWorkManager
.
を発生させてメインスレッドに通知できると思っていRunetimeException
ましたが、ログを分析したところ、その瞬間に例外がスローされ、メインスレッドがすべてWorkItems
を に送信し、メソッドのWorkManager
呼び出しを終了したことがわかりましjoin
たWorkManager
。これでは遅すぎます (ほとんどの場合、 50.000 項目がWorkManager
) によって実行される必要があります。
WorkManager
では、で例外が認識されたときに、メインスレッドを中断して、 にさらにアイテムを送信するのを止めるにはどうすればよいworkCompleted
でしょうか?
java - WorkManager を常にバックグラウンドで実行する方法
アプリが閉じられているか、強制終了されているか、開いているかに関係なく、WorkManager を常にバックグラウンドで実行するにはどうすればよいですか? doWork
データベースの変更をチェックし、データベースの変更時に通知を送信するメソッドをコード化しました。そのため、変更を確認するために常に bg で実行する必要があります。では、これには何を使用する必要がありますOneTimeRequest
かPeriodicWorkRequest
? また、Worker クラスでは Result をRETRY
iereturn Result.RETRY;
に設定し、常に実行し続けることを望んでいます。PS- WorkManager がどの状態/条件でもアイドル状態になることは望ましくありません。それを行う適切な方法は何ですか?