【问题标题】:My work manager is not working after kill the application杀死应用程序后我的工作经理不工作
【发布时间】:2019-10-22 08:48:58
【问题描述】:

当我杀死应用程序时,我的 android 应用程序没有运行 workmanager。 当应用程序进程终止时,workmanager 停止工作。

我的代码是:

PeriodicWorkRequest workRequest =
                new PeriodicWorkRequest.Builder(UploadWorker.class, 1, TimeUnit.MINUTES)
                        .setConstraints(constraints)
                        .build();
        WorkManager.getInstance().enqueue(workRequest);

我也申请了Jobscheduler,但是当应用程序在进程中仍然存在时,程序正在运行。但是当应用程序关闭时,workmanager 不工作。我设置的周期时间是1 min

【问题讨论】:

  • 你设置了什么约束?

标签: android android-workmanager


【解决方案1】:

【讨论】:

  • 我有同样的问题,我给了 18 分钟,但问题还是一样
  • 或者你想说等15分钟再检查
  • 这里没有任何问题。它只在应用程序处于活动状态时运行一次。当我关闭应用程序时,workmanager 不工作
  • 先生。 Raghu 您的回答非常感谢,我找到了您的回答的解决方案。非常感谢
【解决方案2】:

当应用程序进程终止时,workmanager 不会停止工作,您将时间段设置为 1 分钟,最小值为 15 分钟,因此 workmanager 每隔 15 分钟而不是 1 分钟执行一次您指定的工作,并忽略 1 分钟!

【讨论】:

    【解决方案3】:

    我得到了答案,非常感谢。实际上 WorkManager 与 Jobschduler 不同。在 Oreo 的更大版本上限制后台服务后,为后台限制服务启动了 3-4 种方法。 那些是: Firebase FCM 作业调度器 工作经理

    但这里的服务是不同的东西。如果您想关闭或终止应用程序,则需要提及警报管理器并设置时间。

    因此,您需要 1 个 Maninactivity,您可以在其中提及您的 WorkManager,然后您还需要实施 Alarm Manager。 警报管理器的代码是:

    // Alarm Manager
            int i=30;
            Intent intent = new Intent(this, MyBroadcastReceiver.class);
            PendingIntent pendingIntent = PendingIntent.getBroadcast(
                    this.getApplicationContext(), 234324243, intent, 0);
            AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
            assert alarmManager != null;
            alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+ (i * 1000), pendingIntent);
    

    现在您可以在后台运行该服务。 记住时间至少为 30 秒,您也可以每 2 秒运行一次,但如果您在 playstore 上有应用程序并且应用程序目标 SDk 是 oreo 或超过 oreo,那么 playstore 将根据文档中的政策禁用您的应用程序。如果您需要更多信息,请发表评论,我会写更多关于它的信息。我现在已成功获取有关 JobSchduler、WorkManager 的信息。

    【讨论】:

    • 非常感谢亲爱的,我的问题已解决。非常感谢。现在我可以处理所有问题了。但是你隐藏了一些东西,但我也发明了它
    • 哈哈哈,我隐藏了一些东西,因为我总是只给出一个提示,而不是完整的代码。你抓住了,所以你是天才先生。
    • 什么是后台限制服务??
    • 根据我的尝试,如果应用程序被杀死,即使警报管理器也无法工作。可能它会在某些手机上工作。因为,每个手机制造商都会有自己的方法来限制后台进程以优化功耗。您是否在多部手机中尝试过警报管理器,它对您有用吗?
    猜你喜欢
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-16
    相关资源
    最近更新 更多