WorkManagerのマルチプロセスアプリケーションでの高度な使用方法
3600 ワード
WorkManager 2.5では、マルチプロセスアプリケーションが指定したプロセスで実行される特定のWorkManagerインスタンスに容易にアクセスできるようにします.
これで、WorkManager 2.6では、任意のプロセスでWorkerを実行できるサポートをさらに追加し、指定したプロセスにWorkerをバインドできます.マルチプロセスサポートは、複数のプロセスでWorkerを実行する必要があるアプリケーションに役立ちます.ほとんどのアプリケーションでは、1つのプロセスだけでうまく動作することができますが、いくつかのアプリケーションでは、異なるプロセス間の作業を管理するのは過去には困難でしたが、今ではすべてが異なります.
WorkManager 2.6から、RemoteListenableWorkerまたはRemoteCoroutineWorkerを使用して特定のプロセスにWorkerをバインドできます.Kotlinを使用してWorkerを実装する場合はRemoteCoroutineWorkerを使用し、その他の場合はRemoteListenableWorkerを使用します.本明細書の例では、Kotlinを使用して実装し、次の例のリンクでも同様のJava実装を提供します.
RemoteCoroutineWorkerは、CoroutineWorkerに似ていますが、
次に、このように各RemoteWorkerServiceに対してAndroidManifestにサービス定義を追加する必要があります.
これらの新機能がどのように機能するかは、RemoteCoroutineWorkerとRemoteListenableWorkerを使用して同時に実装される新しいWorkManagerマルチプロセスの例で確認できます.
また、WorkManager 2.6で発生した変更および改善の詳細リストは、リリースの説明に記載されています.
最後に、WorkManagerについて何か質問やアイデアがあれば、いつでも公開された問題トレーサに送信にお問い合わせください.
ここをクリックからのフィードバック、またはお気に入りのコンテンツ、発見された問題を共有することを歓迎します.あなたのフィードバックは私たちにとって非常に重要で、あなたの支持に感謝します!
これで、WorkManager 2.6では、任意のプロセスでWorkerを実行できるサポートをさらに追加し、指定したプロセスにWorkerをバインドできます.マルチプロセスサポートは、複数のプロセスでWorkerを実行する必要があるアプリケーションに役立ちます.ほとんどのアプリケーションでは、1つのプロセスだけでうまく動作することができますが、いくつかのアプリケーションでは、異なるプロセス間の作業を管理するのは過去には困難でしたが、今ではすべてが異なります.
WorkManager 2.6から、RemoteListenableWorkerまたはRemoteCoroutineWorkerを使用して特定のプロセスにWorkerをバインドできます.Kotlinを使用してWorkerを実装する場合はRemoteCoroutineWorkerを使用し、その他の場合はRemoteListenableWorkerを使用します.本明細書の例では、Kotlinを使用して実装し、次の例のリンクでも同様のJava実装を提供します.
RemoteCoroutineWorkerは、CoroutineWorkerに似ていますが、
doWork
を上書きするのではなく、do**Remote**Work
を上書きし、WorkRequestを生成するときにARGUMENT_をCLASS_NAMEとARGUMENT_PACKAGE_NAMEの2つのパラメータがInputDataに入力され、特定のプロセスにバインドされます.val PACKAGE_NAME = "com.example.background.multiprocess"
// RemoteWorkerService AndroidManifest.xml
val serviceName = RemoteWorkerService::class.java.name
val componentName = ComponentName(PACKAGE_NAME, serviceName)
val data: Data = Data.Builder()
.putString(ARGUMENT_PACKAGE_NAME, componentName.packageName)
.putString(ARGUMENT_CLASS_NAME, componentName.className)
.build()
return OneTimeWorkRequestBuilder
.setInputData(data)
.build()
次に、このように各RemoteWorkerServiceに対してAndroidManifestにサービス定義を追加する必要があります.
...
これらの新機能がどのように機能するかは、RemoteCoroutineWorkerとRemoteListenableWorkerを使用して同時に実装される新しいWorkManagerマルチプロセスの例で確認できます.
また、WorkManager 2.6で発生した変更および改善の詳細リストは、リリースの説明に記載されています.
最後に、WorkManagerについて何か質問やアイデアがあれば、いつでも公開された問題トレーサに送信にお問い合わせください.
ここをクリックからのフィードバック、またはお気に入りのコンテンツ、発見された問題を共有することを歓迎します.あなたのフィードバックは私たちにとって非常に重要で、あなたの支持に感謝します!