なぜ新しいAndroid WorkManager ifalready havea JobScheduler いくつかの気の利いたバックポート( AndroidJob および FirebaseJobDispatcher )に同じ機能がありますか?殺害機能などがありますかanythingを参照して、まだ別のスケジューラーに移行したいと思います。
「WorkManagerには多くのNice機能がありますが、その主な目標は古いデバイスでJobSchedulerのAPIを使用することです」...待ってください。しかし、すでにいくつかのバックポートがあります。それらの何が問題になっていますか?短くするには:
FireaseJobDispatcher は問題ありませんが、ジョブをスケジュールするにはGoogle Playが必要です。たとえば、中国をターゲットにしている場合は良くありません。
Evernoteの AndroidJob は、多くの機能を備えた優れたバックポートです。私見、それはだった仕事のスケジューリングに最適。しかし、現在、ライブラリの最新バージョンは、前述のWorkManagerを内部で使用しています。そして、残念ながら、遅かれ早かれ ライブラリは非推奨になります :
新しいプロジェクトを開始する場合は、このライブラリの代わりにWorkManagerを使用する必要があります。また、このライブラリからWorkManagerへのコードの移行を開始する必要があります。将来のある時点で、このライブラリは非推奨になります。
彼らは、より多くの機能を提供し、短い比較を提供するため、WorkManagerに切り替えることを提案します:
| Feature | Android-job | WorkManager |
| ------------------ | ----------- | ----------- |
| Exact jobs | Yes | No |
| Transient jobs | Yes | No |
| Daily jobs | Yes | No |
| Custom Logger | Yes | No |
| Observe job status | No | Yes |
| Chained jobs | No | Yes |
| Work sequences | No | Yes |
Imo、最後の3つの機能は非常に便利で、WorkManagerのみでサポートされています。私の最後の質問に対する答えはイエスです、それはいくつかのkilling-featuresを持っています:
WorkManagerの詳細については、Sumir Katariaによる this talk をご覧ください。
追伸誰かが理由を知っている場合FirebaseJobDispatcherGoogleエンジニアが積極的にサポートしています 廃止される代わりに、以下のコメントに書いてください:)
WorkManagerは、GoogleのEvernoteのAndroid-Jobライブラリに対する回答のように見えますが、いくつかの改善があります。デバイスのAPIレベルに応じて、Android-Jobと同様にJobScheduler、Firebase JobDispatcher、AlarmManagerを使用します。タグの使用方法はほとんど同じに見え、ジョブ/作業への制約の割り当ては十分に似ています。
私が興奮している2つの機能は、作業を連鎖できることと、制約のある作業で日和見的になることです。 1つ目は、作業(ジョブ)を分割して、よりモジュール化できるようにします。モジュール化された作業が増えると、各作業の制約が少なくなり、早期に完了する可能性が高まります(日和見的)。たとえば、処理作業の大部分は、ネットワーク制約のある作業を満たす前に完了することができます。
したがって、現在のスケジューラの実装に満足しており、私が言及した2つの機能が付加価値をもたらさない場合、切り替えを行うことに大きな利点はまだありません。ただし、何か新しいことを書いている場合は、おそらくWorkManagerを使用する価値があります。
WorkManagerはJobSchedulerサービスを使用してジョブをスケジュールします。 JobSchedulerがデバイスでサポートされていない場合、Firebase JobDispatcherサービスを使用します。 Firebase JobDispatcherがデバイスで利用できない場合、AlarmManagerとBroadcastReceiverを使用します。
したがって、WorkManagerを使用すると、下位互換性について心配する必要はありません。これに加えて、ネットワークの制約、バッテリーレベル、充電状態、ストレージレベルなど、ジョブを実行するために満たす必要がある制約を定義できます。
これにより、タスクチェーンと引数のジョブへの受け渡しが可能になります。
http://www.zoftino.com/scheduling-tasks-with-workmanager-in-Android
WorkManagerはJobSchedulerとAlarmManagerの上にあります。WorkManagerは、ユーザーのデバイスAPIレベルなどの条件に基づいて、使用する適切なAPIを選択します
WorkManagerはシンプルですが、非常に柔軟なライブラリであり、多くの利点があります。これらは次のとおりです。
-Support for both asynchronous one-off and periodic tasks.
-Support for constraints such as network conditions, storage space, and charging -status
-Chaining of complex work requests, including running work in parallel.
-Output from one work request used as input for the next.
-Handles API level compatibility back to API level 14.
-Works with or without Google Play services.
-Follows system health best practices.
-LiveData support to easily display work request state in UI.