【问题标题】:Workmanager with multiple-processes具有多进程的 Workmanager
【发布时间】:2020-10-01 16:16:54
【问题描述】:

有没有办法将工作管理器中的工作从多个进程中排入队列?现在,当我尝试从“非 ui”进程中执行此操作时,我收到了此消息

I/WM-GreedyScheduler: Ignoring schedule request in non-main process.

我使用的工作管理器版本是 2.4.0。我知道现在有 2.5.0-alpha2,但我不能在生产中使用它

【问题讨论】:

    标签: android ipc android-workmanager


    【解决方案1】:

    WorkManager 2.5.0-alpha02 是第一个支持多进程的 WorkManager 版本。

    在任何先前版本的 WorkManager 中都没有跨多个进程使用 WorkManager 的机制(因此首先添加了这些新 API),因此您需要升级到该版本的 WorkManager 或等待它成为 beta/RC/stable。

    【讨论】:

    • 所以你是说你不能在第二个进程中创建一个新的 WorkManager 实例并开始将工作排入队列? (例如,在 process1 中有一个实例,在 process2 中有一个实例,可以彼此独立运行)
    • 每个进程不能有独立的 WorkManager 实例,不。只有使用 2.5 中的新 API,您才能将来自多个进程的工作排入队列
    • 2.4.0 存在计算 isMainProcess 变量的错误。 mIsMainProcess = TextUtils.equals(mContext.getPackageName(), getProcessName());如果您在清单中指定应用程序的进程名称,您将始终得到 false,因为您的进程名称将类似于 com.example.app:{processName}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    相关资源
    最近更新 更多