This repository has been archived by the owner on Apr 12, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 113
[Android] WorkManagerをApplication#onCreateで再スケジュールする #196
Labels
Comments
Version 2.6.0-beta01 |
誤解を招いてしまったようですが、 2.6.0-beta01 上記記述時点では Nuget には記載が無かったです。今見るとある模様。 |
Pull Requestを出しました。よく動いている。 |
This was referenced Sep 8, 2021
Merged
Closed
Merged
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
その機能リクエストは何らかの問題に関連しますか / Is your feature request related to a problem?
#136 (comment) より。
Android版の接触確認API(Google Play Services)は、システムが接触確認アプリを停止してバックグランド処理が実行されない場合に備えて「Force-stop Handling」を備えている。
Google Play Servicesは、Force-stop Handlingで6時間に1回の頻度でアプリのプロセスを再度起動して、WorkManagerのJobを復帰する。
ところが、一部の端末(some popular devices)では、Force-stopされたかを判定する処理でSecurityExceptionが発生するため、Force-stop Handlingが完了せず、Jobの復帰が行われない可能性がある。
androidx/androidx@9b77063#diff-7794a8af74a01c5c6d2ee10558482274048bd3aa011aaca99459c2c5049fd7dd
some popular devicesとは 🤔
解決策についてお書きください / Describe the solution you'd like
WorkManagerにWorkerを登録する一連の処理を、現在のMainActivityからApplication#onCreateに移動する。
COCOA v1.2.3からWorkerのExistingPeriodicWorkPolicyがKEEPになっているので、アプリのプロセス起動時に再登録されても上書きされることはなく、現在の動作には影響がないと考える。
あなたが考える代替案についてご説明ください / Describe alternatives you've considered
WorkManagerにSecurityExceptionを無視するワークアラウンドが追加されている。
androidx/androidx@9b77063#diff-7794a8af74a01c5c6d2ee10558482274048bd3aa011aaca99459c2c5049fd7dd
この変更が入ったバージョンにすることで課題を解決することができると考える。
Historyを見る限り
2.6.0-beta01
に入りそうだが、これを書いている時点では2.6.0-beta01
はリリースされていない。https://developer.android.com/jetpack/androidx/releases/work?hl=zh-tw#version_260_2
その他 / Additional context
Force-stop Handlingがアプリのプロセスを再起動するか。実際に確認していない(WorkManagerのJobが復帰することは確認した)ので、あらかじめ実験して確認しておく。
Application IDがCOCOAと異なる場合でも、接触確認APIを利用中であればWorkManagerのJobは復帰したので、リリース版のCOCOAに限定されていない。実験は、接触確認APIを使ってWorkManagerにJobを登録するだけの最小限の機能のアプリを作るのが方がよさそう。
Internal IDs:
The text was updated successfully, but these errors were encountered: