问题标签 [android-workmanager]
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.
android - WorkerManager 是在应用程序中实现警报/提醒功能的可行方式吗?
我们注意到AlarmManagerCompat
,由于AlarmManager
不同版本的操作系统的行为不同,仅此一项并不是在我们的应用程序中实现警报/提醒功能的可靠方法。(例如,打盹模式)
最初,我们计划使用 Evernote 的android-job库来帮助我们在我们的应用程序中实现警报/提醒功能。
然而,一路走来,我们也注意到谷歌刚刚发布了WorkerManager
.
到目前为止WorkerManager
,当我们在应用程序退出后运行一些一次性后台作业(几乎立即,具有互联网连接限制)时,对我们来说效果很好。
我们计划使用WorkerManager
来实现警报/提醒功能。
WorkerManager
我想知道,实现这样的功能有多可靠?有人尝试过吗?我们的目标是 API 15 及更高版本。
android - 处理WorkManager对网络连接失败的响应
我正在使用 WorkManager 将数据从本地 Room 数据库同步到服务器。问题是 Room 在 Loop.MainLooper() 中构建数据库时出错,当我按照以下方式使用它时,它工作正常。但是我无法根据任务完成在 SUCCESS 或 RETRY 上返回“WorkerResult”。当 Netwrok 丢失时如何停止工作人员?
java - WorkManager 找不到所需的零参数构造函数
我WorkManager
1.0.0-alpha02
在依赖项中使用 foundandroid.arch.work:work-runtime
每隔一分钟查询一个网页(此示例排除了查询代码,因为它无关紧要)。
当我WorkManager
这样使用时:
它给出了这个错误信息:
我尝试了以下构造函数无济于事:
- 没有构造函数
- 上市
- 私人的
- 具有非空主体的构造函数,其唯一语句为
super();
android - 迁移到 FCM 和 Android O - 启动 IntentService 仍然有效吗?
我目前正在将我的项目更新为 targetSdkVersion 26 (Android O),并从 GCM 迁移到 FCM。
目前我有:
RegistrationIntentService
获取 GCM 令牌并将此令牌发布到服务器的A。MainActivity
检查GooglePlayServices
然后启动RegistrationIntentService
.A
MyInstanceIDListenerService
具有onTokenRefresh
刚刚启动RegistrationIntentService
.
这是基于 Google示例。
要迁移到 FCM,我只需更改MyInstanceIDListenerService
为继承自FirebaseInstanceIdService
,RegistrationIntentService
现在用于FirebaseInstanceId
获取令牌。
一切似乎都正常,我在 Android O 模拟器中对其进行了测试。
但是,我知道 Android O 正在限制后台服务。RegistrationIntentService
所以,我想知道在以 Android O 为目标的应用程序中从MainActivity
and开始是否仍然可以MyInstanceIDListenerService
。
或者我应该将RegistrationIntentService
代码移动到要由 执行的任务WorkManager
吗?
谢谢。
android - WorkManager beginUniqueWork 无法按预期工作
目前,我正在使用 WorkManager 1.0.0-alpha02。
当应用程序退出时,使用以下代码执行后台工作程序没有问题。
使用入队,按预期工作
因为,我想避免SyncWorker
同时运行不止一个。我尝试使用
使用 beginUniqueWork,不起作用
SyncWorker
根本没有运行。
我可以知道我错过了哪一步吗?谢谢你。
android - Android Work Manager:我可以强制修剪已完成的作业吗?
我正在我的应用中上传照片,并希望向用户提供上传进度。我打算这样做的方法是有一个全局标签,UPLOAD_MEDIA_TAG
并在我创建一个OneTimeWorkRequest
. 这样我就可以观察WorkManager.getInstance().getStatusesByTag(UPLOAD_MEDIA_TAG)
LiveData,每当作业完成时,我都会显示完成的百分比。(IE 上传 3/10 照片会显示 30%)。然后,一旦上传了所有 10/10 照片,我就会隐藏进度条。这很有效,因为它很容易支持离开应用程序,回来,一旦应用程序在他们离开的地方启动,你就会看到进度条。
问题是,一旦所有 10/10 作业都完成并标记为已完成,这些作业将一直存在,直到 WorkManger 修剪它们。因此,如果用户再上传 5 张照片,LiveData 将返回 15 个状态而不是 5 个,从而放弃百分比计算。
我注意到有一种方法OneTimeWorkRequest.keepResultsForAtLeast(duration)
,但我想要的是类似的方法,keepResultsForAtMost(duration)
或者一种WorkManager.getInstance().forcePrune()
可以从数据库中清除所有已完成作业的方法。
任何帮助都会很棒!
android - 安卓。关闭应用程序时 WorkManager 是否正在运行?
我想安排每晚的数据库更新。所以我使用新的 Android WorkManager。我的理解是,一旦安排好,它将始终在后台独立于应用程序的生命周期运行。那正确吗?我的第一个测试表明只有在应用程序运行时才执行工作。
android - WorkManager 是否应该与 SyncAdapter 一起使用?
以前可以使用带有 WakeLock 的 IntentService 或 SyncAdapter 来确保一系列更新。
现在有了新的打盹模式和节省电池的限制,WakeLock 是否仍然足够可靠,或者是否应该使用 WorkManager 在 IntentService 或 SyncAdapter 中启动更长的进程?
WorkManager api 也准备好生产了吗?
android - PeriodicWorkRequest 触发时间
我想添加一个触发时间来开始工作,但我找不到使用工作管理器的方法,
这是我的代码