jjzjj

WorkManager

全部标签

android - 在 Samsung Galaxy 手机上手机进入休眠模式后,WorkManager 被取消

我正在尝试使用WorkManager运行后台服务。当应用程序进入后台时,我启动了WorkManager。每当WorkManger运行时,我也会启动后台服务。应用程序进入后台后,我可以看到我的应用程序服务。我还可以看到它是在我通过在应用程序列表中滑动关闭应用程序后大约15分钟后启动的。所以我确定workmanager在开始时正在工作。但我认为它不适用于打瞌睡模式。从打瞌睡模式唤醒手机后,我也看不到我的服务。我的代码:publicclassMyWorkerextendsWorker{publicMyWorker(){super();}@NonNull@OverridepublicWorke

android - 从 JobScheduler 迁移到 WorkManager 似乎是一项艰巨的任务。任何建议+

我已经使用JobScheduler一段时间了。一个典型的例子是:JobScheduler触发onStartJob()方法。这将启动某种任务,可能包括其他几个后台进程(获取设备位置、进行网络调用等)。然后,我使用接口(interface)在任务完成或失败时回调到JobService。但是,使用WorkManager似乎基本上没有办法异步运行工作。我知道WorkManager将在单独的线程中运行Workers,但似乎单个worker必须同步运行?如果是这样,我将不得不在我的应用程序中重做很多逻辑,除非我遗漏了什么。假设我有一个天气应用程序,它会使用JobScheduler来运行执行以下操作

android - 我可以始终使用 WorkManager 而不是协程吗?

我想知道既然有WorkManager这样出色的解决方案,我为什么还要费心使用rx或协程。但是对于几乎所有教程,他们都使用协程,所以WorkManager可能有缺点吗? 最佳答案 两者的范围不同。WorkManager将安排可延迟(任何以后的时间)或立即安排。异步任务。AsdocumentationsaysTheWorkManagerAPImakesiteasytospecifydeferrable,asynchronoustasksandwhentheyshouldrun.TheseAPIsletyoucreateataskandh

android - 用于精确时间执行的 WorkManager API

这个问题在这里已经有了答案:HowtoschedulenotificationsusingWorkManager?(5个答案)关闭3年前。我想在准确的时间(假设每天上午9:00)定期向用户发送离线通知。现在我正在尝试workmanagerApi,但找不到任何方法,例如AlarmsManager的setExact或setexactandallowwhileidle。在我的例子中,只有repeatInterval选项是24(每天),但如何在准确的时间(上午9:00)发送通知。

java - IllegalStateException:WorkManager 已经初始化

具有这些依赖性:dependencies{implementation"androidx.work:work-runtime:2.0.1"androidTestImplementation"androidx.work:work-testing:2.0.1"}第二次运行这段代码时:Configurationconfig=newConfiguration.Builder().build();WorkManager.initialize(getApplicationContext(),config);this.workManager=WorkManager.getInstance();我收到

android - 如何在 WorkManager 中配置 Rx?

我实现了一个AlarmManager以在用户向任务添加截止日期时发送通知。然而,当用户关闭设备时,所有警报都将丢失。现在我正在更新BroadcastReceiver以接收android.intent.action.BOOT_COMPLETED并重新安排为每个任务设置的所有警报。我的第一次尝试是在BroadcastReceiver中获取一个包含所有截止日期高于当前时间的任务的RxSingle,然后重新安排所有警报。问题是一旦BroadcastReceiver没有生命周期,我就无法处理Observable。另外,itseemsthatthisisnotagoodapproach.在我的研究

Android WorkManager 在使用 Robolectric 进行测试时出现错误

我正在使用带有自定义初始化的Android工作管理器。为此,我像这样在list中禁用自动初始化在应用程序代码中我使用这段代码privatefuninitWorkManager(){WorkManager.initialize(this,Configuration.Builder().run{setWorkerFactory(appComponent.daggerWorkerFactory())build()})}当我运行我的应用程序时它工作正常。但是,当我使用roboletric进行测试时,任何需要RuntimeEnvironment.application上下文的类都会抛出此异常ja

android - 更新到 WorkManager 1.0.0-alpha09 后编译错误

我正在尝试使用架构组件中的WorkManager。我已将compileSdkVersion和targetSdkVersion从27升级到28。gradlesync已成功完成。但是构建时错误不断弹出。由于“android.support:design”,android.support库正在使用版本28.0.0-rc02。我尝试添加packagingOptions以排除“proguard/androidx-annotations.pro”。但这没有帮助。但是这次我得到了不同的错误信息:Programtypealreadypresent:com.google.common.util.conc

android - 检查 WorkRequest 之前是否已被 WorkManager Android 查询

我正在使用PeriodicWorkRequest每15分钟为我执行一次任务。我想检查一下,如果这个定期工作请求之前已经安排好了。如果没有,请安排。if(!PreviouslyScheduled){PeriodicWorkRequestdataupdate=newPeriodicWorkRequest.Builder(DataUpdateWorker.class,15,TimeUnit.MINUTES).build();WorkManager.getInstance().enqueue(dataupdate);}以前在使用JobScheduler执行任务时,我曾经使用publicstat

android - WorkManager 的 OneTimeWorkRequest 的重试策略/机制是什么

我有以下的一次性worker。//CreateaConstraintsthatdefineswhenthetaskshouldrunConstraintsconstraints=newConstraints.Builder().setRequiredNetworkType(NetworkType.UNMETERED).setRequiresBatteryNotLow(true)//Manyotherconstraintsareavailable,seethe//Constraints.Builderreference.build();OneTimeWorkRequestoneTimeW