问题标签 [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 - 应用程序因 WorkManager 崩溃
所以最近我正在尝试测试 WorkManager 并且我遇到了一个我不知道如何解决它的错误......
我遇到的错误是这个:
我检查了可能出现此错误的位置,似乎当我对该代码添加注释时:
我的应用程序运行良好......我不知道问题是来自WorkManager
还是我所做的实现......
这是我的项目的信息:
minSDKversion : 14
targetSDKversion : 28
我的gradle.build
:
有人帮我吗?谢谢你 :)
PS:这是来自的代码NoNetworkWorker
:
android - 如何从 Worker 类中获取 ViewModel?
- 我的应用程序中有一个
Activivity
名为 MainActivity。 MainActivity 与
/li>ViewModel
OnCreate 方法中的a 相关联我做了一些背景工作
Workers
。val someWork = OneTimeWorkRequestBuilder<LoginWorker>().build() WorkManager.getInstance().beginUniqueWork("SOMEWORK", ExistingWorkPolicy.REPLACE, captivePortalWork).enqueue()
问题来了...
worker
例如循环10次,每次只睡一秒钟...所以我们有10秒的后台工作。我想更新ViewModel
以显示后台工作的进度并每次更新 UI。A)我可以从 MainActivity 访问 View 模型并观察
worker
但是我只能更新ViewModel
进度成功或失败的时间......这意味着我可以在工作完成 0 或 100% 时显示进度。B) 如果我可以从 Worker 类访问 ViewModel,我可以随时更新 ViewModel。但我不知道如何......这种方法在 Worker 类中不起作用。
val someWork = ViewModelProviders.of(this).get(SomeViewModel::class.java)
我怎样才能
ViewModel
从Worker
课堂上得到一个?
android - 访问存储数据时房间崩溃
我使用工作管理器将数据保存到本地数据库,然后将相同的数据放入服务器。
在 localDeleteRequest 类中,我将 id 作为 WorkData 传递并使用该 id 来获取存储在本地数据库中的对象
工作管理器功能:
查看模型类:
DeleteUser 本地函数:
删除用户服务器:
我面临以下问题:
android - 在后台工作有哪些限制?
据我所知,Android 允许每 15 分钟定期启动一次服务,并且在打盹模式下在后台工作的最长时间是 10 分钟,但我认为下面的代码避免了这个限制。我对吗?
android - WorkManager beginUniqueWork 队列在第一次工作后没有被调用
我正在使用 WorkManager 1.0.0-alpha02
我创建了我的工人阶级,如:
然后在我的视图模型中,我安排了工作链,例如:
最后在另一段代码中我正在观察它: viewmodel.printStatus.observe(this, Observer { works ->
第一项工作在入队后立即完成并返回 Worker.WorkerResult.SUCCESS 但链的其余部分不会被调用
android - 避免从 WorkManager 复制 PeriodicWorkRequest
在应用程序启动时,我想启动将永远工作的服务,但是当用户再次打开应用程序时,它会重复。
android - 用于精确时间执行的 WorkManager API
我想在准确的时间定期向用户发送离线通知(假设每天上午 9:00)。现在我正在尝试workmanager Api,但找不到像AlarmsManager的setExact或setexactandallowwhileidle这样的方法。
在我的情况下,只有 repeatInterval 选项将是 24(每天),但如何在准确时间(9 : 00 am)发送通知。
android - 从 androidx.work.Worker 将数据保存到 Room 失败
我尝试将数据从 Worker 保存到 Room 数据库。
版本:
- 工作运行时 Ktx - android.arch.work:work-runtime-ktx:1.0.0-alpha02
- 房间 - android.arch.persistence.room:runtime:1.1.0 和 android.arch.persistence.room:compiler:1.1.0
MainActivity.kt
DWElementsWork.kt
应用数据库.kt
主要问题在于尝试调用elementDao?.insertElements(elements!!)
它时会出现以下错误:
堆栈跟踪
我在插入元素之前停止了调试器并AppDatabase.getInstance(applicationContext).isOpen
返回false。
难道我做错了什么?
是否可以将数据从工人保存到房间?
也许applicationContext (getApplicationContext()) 没有提供适当的上下文并且 AppDatabase 实例化很糟糕?
提前致谢!
android - WorkManager - PeriodicWorkRequest 在 android api 21 上不起作用
我正在尝试使用 PeriodicWorkRequest 安排定期检查。它在 android API 23 及更高版本上运行良好,但不适用于 android API 21。在 API 21 上它只能运行一次。
这是
PeriodicWorkRequest worker = new PeriodicWorkRequest.Builder(TestWorker.class, MIN_PERIODIC_INTERVAL_MILLIS, TimeUnit.MILLISECONDS).setConstraints(Constraints.NONE).addTag(TAG_PERIODIC_WORK_REQUEST).build();
WorkManager.getInstance().enqueue(worker);
用最新的alpha03和alpha02测试的示例代码
我做错了什么?或者它可能是一个错误?
android - 将 WorkManager 从 1.0.0-alpha02 升级到 1.0.0-alpha03 时出现运行时异常
当我WorkManager
从 1.0.0-alpha02 升级到 1.0.0-alpha03 时。
旧版本.gradle
新建 build.gradle
我注意到我需要进行以下更改
1.0.0-alpha02
1.0.0-alpha03
不过,这不是主要问题。但是,如果我们倾向于升级以前已经运行 using 的应用程序,1.0.0-alpha02
我们将得到以下运行时异常
我可以知道有哪些解决方法,以避免这种运行时异常?