我有一个后台任务,必须在固定过程中运行。我目前正在为此使用.vue
。但是,我想迁移到WorkManager来利用基于网络的任务延迟。
是否使用WorkManager或以任何其他API 14-28兼容方式解决此问题?
答案 0 :(得分:0)
这种方法呢?
<service
android:name="androidx.work.impl.background.systemjob.SystemJobService"
android:process=":worker"/>
只需将声明放入您的Manifest中,然后ManifestMerger用android:process=":worker"
创建最终合并的Manifest(worker
是非主进程的名称,可以是另一个主进程)
答案 1 :(得分:0)
WorkManager 2.5.0 新增了一个workmanager-multiprocess 模块来解决这个问题。你可以用
implementation "androidx.work:work-multiprocess:$work_version"
要使用它,您可以注册一个新的 WorkManager.Initializer
,如本页所述:
https://developer.android.com/topic/libraries/architecture/workmanager/advanced/custom-configuration
当您注册此初始化程序时,您的配置需要包括对 .setDefaultProcessName("com.example.app:processName")
的调用。这将使调用发生在正确的过程中。我现在正在测试这个,它似乎有效,但如果有任何问题,我会更新这篇文章。
答案 2 :(得分:-1)