Android WorkManager在固定进程中运行作业

5

我有一个后台任务需要在固定进程中运行。目前我正在使用 JobIntentService 来实现这个功能。然而,我想迁移到 WorkManager,以利用基于网络的任务延迟。

是否有任何解决方案可以在 WorkManager 中或任何其他兼容 API 14-28 的方式中实现?


有人能帮忙解答一个问题吗?是否有可能在一个单独的进程中运行工作管理器? - Mahesh
https://dev59.com/abLma4cB1Zd3GeqPfbsv#58857684 - SAURABH_12
3个回答

1

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") 的语句。这将使调用发生在正确的进程中。我正在测试此功能,它似乎可以正常工作,但如果有任何问题,我会更新此帖子。


0

这种方法怎么样:


        <service
                android:name="androidx.work.impl.background.systemjob.SystemJobService"
                android:process=":worker"/>

只需将声明放入您的清单文件中,ManifestMerger 就会创建一个最终合并的清单文件,并带有 android:process=":worker"worker 是非主进程的名称,可以是其他名称)。

-1

这似乎无法控制它运行的进程。 - F43nd1r

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接