问题标签 [workmanagers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
935 浏览

android - 如何为 Worker 排队任务(WorkerManager API)?

我有一连串的请求

这整个任务(假设)需要 1 分钟......问题是如果我在一分钟内调用这个方法几次(例如 4 次),那么WorkManager真的会异步启动这个任务 4 次。

我需要所有这些任务都将同步执行(如队列)。

怎么做?

0 投票
1 回答
368 浏览

android - PeriodicWorkRequest 无论如何都不起作用

PeriodicWorkRequest 根本不起作用。如您所见,我已将重复间隔设置为至少 15 分钟。它被排队,然后显示正在运行,但就是这样。什么也没发生,我什至等了 30 分钟!这只是行不通。但是,OneTimeWorkRequest 工作得非常好,没有任何问题,但在 PeriodicWorkRequest 方面却没有运气。请看下面我的代码:

我也尝试过设置弹性间隔:

它只是行不通!我试过同时使用 2.3.0-alpha01 和 2.3.0-beta01 版本。没运气。我正在使用 Google Pixel 3a,targetSdkVersion 是 29。有人可以帮忙吗?谢谢你。

0 投票
4 回答
7320 浏览

flutter - 类型不匹配:推断类型是 PluginRegistry?但 FlutterEngine 是意料之中的

我想与 Flutter Workmanager 合作,我在 .kt 中进行了引用的配置,如下所示:

我已经android:name改为

但它给了我这个错误:

在调试模式下在 G3212 上启动 lib\main.dart... e:E:\mybackprocess\android\app\src\main\kotlin\com\example\mybackprocess\MainActivity.kt: (15, 48): 类型不匹配:推断类型是 PluginRegistry?但 FlutterEngine 是意料之中的

FAILURE:构建失败并出现异常。* 出了什么问题:任务 ':app:compileDebugKotlin' 执行失败。编译错误。有关详细信息,请参阅日志

尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。* 在https://help.gradle.org获得更多帮助

在 55 秒内构建失败 Gradle 任务 assembleDebug 失败,退出代码为 1 退出(sigterm)

有人可以帮帮我吗?

0 投票
1 回答
2235 浏览

flutter - 如何在 Flutter 中使用工作管理器运行后台进程?

我想使用 Flutter Workmanager,我在我的 .kt 中做了引用的配置

我已将 android:name 更改为

但它给了我这个错误:

0 投票
1 回答
397 浏览

android - EditWorkManager 方法 getWorkInfoByIdLiveData 未提供 WorkInfo

我正在尝试使用 WorkManager 实例中存在的 getWorkInfoByLiveData 方法获取我的 WorkerInfo。

WorkInfo 始终为空。另外,我正在从主线程调用此方法。

我如何检查此方法的场景。当用户发送网络请求时,我尝试将我的工作人员排队,如果没有连接互联网,我只需向 WorkManager 注册一个工作。一段时间后,如果我尝试使用UUID获取 WorkerInfo ,它总是会给我空值。

注意:调用getWorkInfoByLiveData时,此时不会执行 Worker。

难道我不希望 WorkManager 给我带有ENQUEUED状态的 WorkInfo。

编辑1: 所以,另一种情况是这样的,我正在使用的应用程序就像一个社交应用程序。现在注册第一个工作人员后,假设用户不想看到特定用户的帖子,所以我需要在这里注册我的第二个工作人员,因为此时用户互联网不可用。现在我需要做的是取消以前注册的工作人员,然后创建一个工作人员链,不显示用户的帖子到beginWith然后获取所有帖子。现在为了取消工作人员,我检查之前的工作人员是否仍处于排队状态,然后取消它并创建一个新的链或工作人员。

这是代码。

workInfo实例始终为空

0 投票
0 回答
2681 浏览

android - Android WorkManager 没有启动工作人员

我想在应用程序启动时从服务器下载某些文件。所以我尝试使用从我的自定义 Application 类中排队的 Work Manager。但是 Worker 类没有被触发并且状态只是 ENQUEUED 并且不会进入 RUNNING .以下是我的代码:

应用类:

MyWorker 类

构建.gradle:

我尝试过的事情:

我尝试添加一个间隔并删除约束,但也没有触发 MyWorker。

我看过很多 SOF 帖子,如下所示,但对我没有帮助:

工人经理:不在队列中开始工作

为什么工作经理中的工人仍处于 ENQUEUED 状态?

Android WorkManager 不会触发两个计划工作人员之一

0 投票
1 回答
1526 浏览

function - Flutter:尝试使用 location 和 workManager 插件在后台访问位置数据

简而言之: 尝试使用 location 和 workManager 插件在后台访问用户的位置数据。目前使用下面提到的代码,如果应用程序打开,我可以访问位置信息,因为 callbackDispatcher 是顶级函数,我无法调用位置插件。位置插件在类内完成调用时起作用。我正在尝试一种从 callbackDispatcher 访问 _getlocation() 的方法,我得到了 PlatformException(NO_ACTIVITY)。

我尝试过的事情:在这里这里这里 发现很少有其他人面临类似问题 厌倦了所有这些步骤,没有运气。

试图从 callbackDispatcher() 访问 _getlocation();非常感谢您对此的任何帮助。

0 投票
1 回答
62 浏览

android - 如何在 Android Jetpack Workmanger 中输入和输出 A Object 数据?

在 Android Jetpack WorkManger 中,在 Worker 中定义一个输出数据:

putLong, putString, putBoolean,但是没有定义一个函数来放置一个Object.

如何a Entity Object在 Worker 中输出。

0 投票
0 回答
424 浏览

android - 安卓工作管理器

我无法弄清楚如何使用 Android 的 Workmanager。本质上,我想发出一个带有时间延迟的 OneTime 请求,确定成功,然后做一些事情。工人阶级什么都不做。

我期待的是延迟后返回的成功代码。也就是说,我的 Workmanager 代码的唯一目的是提供延迟。

我知道还有许多其他方法可以影响延迟,但我的理解是,Android 比 AlarmManager 更好地“保护” Workmanager Workers。

不幸的是,我做不到。

这是我所做的

  1. 扩展我的活动以包括 LifecycleOwner
  2. 添加了所需的getLifeCycle方法,如下

    /li>
  3. 这是工人阶级

    /li>
  4. 这是我的操作代码

    /li>

我尝试了许多变体,但都没有成功。上面的代码导致堆栈溢出崩溃。帮助!

0 投票
1 回答
1100 浏览

android - 在 api 27、28、29 中保护应用程序时,工作管理器不运行

我有一个每 15 分钟运行一次的定期任务。

保护应用程序时。如果应用程序从后台被杀死,工作管理器将无法工作。

测试设备:一加7T、诺基亚5+、谷歌pixel 2 Emulator

只有当应用程序处于前台或后台时,工作管理器才会被执行。

禁用 proguard 工作管理器在所有 3 个条件下工作

  1. 该应用程序在前台

  2. 后台应用程序

  3. 该应用程序从后台被杀死

根据我在https://issuetracker.google.com/issues/160492142#上提出的问题

proguard 文件中可能有问题。

我已经尝试了所有版本。但同样的问题也存在。它在 Api 级别 27、28、29 中不起作用。

工作管理器在所有旧 API 级别中都能正常工作

并不意味着它仅在app 被杀死时才起作用

当应用程序在前台和应用程序在后台时,它可以工作。

工作管理器已在应用程序类中手动初始化

示例代码

https://github.com/parmarravi/WorkManagerSample

自 2020 年 11 月 7 日起更新

关于这个问题的详细研究。

Android Studio Work Manager 奇怪的行为