これらの依存関係がある:
_dependencies {
implementation "androidx.work:work-runtime:2.0.1"
androidTestImplementation "androidx.work:work-testing:2.0.1"
}
_
このコードを2回目に実行する場合:
_Configuration config = new Configuration.Builder().build();
WorkManager.initialize(getApplicationContext(), config);
this.workManager = WorkManager.getInstance();
_
次のエラーメッセージが表示されます。
_Java.lang.IllegalStateException: WorkManager is already initialized.
Did you try to initialize it manually without disabling WorkManagerInitializer?
See WorkManager#initialize(Context, Configuration) or the class level Javadoc for more information.
_
また、ネイティブ側でセグメンテーション違反をスローします。
_A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR),
fault addr 0x878 in tid 10892 (ova.workmanager),
pid 10892 (ova.workmanager)
_
これは、WorkManager#initialize(Context, Configuration)
の- documentation になります。
意図は、手動での初期化中にクラッシュを防止することです(ログレベルを変更するため)。 WorkManagerInitializer
を無効にする方法は?可能であれば、static
キーワードを使用したくありません。
WorkerManagerを初期化する場合は、これをカスタムアプリケーションクラスのonCreateに配置する必要があるため、これは1回だけ呼び出されます。その後は、心配することなく必要なときにのみインスタンスを取得できます。 Worker Managerを初期化することはお勧めしません。なぜそれが必要なのですか?