草庐IT

Android WorkManager 与 JobScheduler

全部标签

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

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

android - 使用 FusedLocationProviderClient、JobScheduler 和 JobService 更新位置

我正在尝试使用带有JobScheduler和JobService的新FusedLocationProviderClient创建后台位置跟踪服务。我读过here我们应该使用requestLocationUpdates(LocationRequestrequest,PendingIntentcallbackIntent)以此目的。我在我的MainActivity中安排工作是这样的:finalComponentNameserviceComponent=newComponentName(this,LocationJobService.class);finalJobSchedulerjobSch

android - JobScheduler 不重复作业

我正在使用JobScheduler.setPeriodic()来重复我的JobIntentService。它第一次工作但从不重复。运行于安卓7.0并发检查.javaintmdelaymilles=30000;JobSchedulerjobScheduler=(JobScheduler)mActivity.getSystemService(JOB_SCHEDULER_SERVICE);ComponentNamecomponentName=newComponentName(mActivity,ConcurrentCheckService.class);JobInfojobInfo=newJ

android - Android 中 GCMNetworkManager 和 JobScheduler 有什么区别

您好,我在stackoverflow上找不到任何关于Android中GCMNetworkManager和JobScheduler之间区别的线程。谁能帮我解决这个问题。 最佳答案 两者做同样的事情,区别在于你什么时候可以使用或另一个。JobScheduler作为Android框架的一部分在API21上引入。如果您的应用最低API级别是21,则您应该使用这个。GCMNetworkManager是它的“兼容”版本,通过GooglePlay服务处理/执行(因此它可以在设备上运行)。如果您的应用最低API级别低于21,您应该使用这个。同样需要

Android JobScheduler 每天只运行一次

我检查了从AndroidAPI级别21开始可以使用的JobSchedulerAPI。我想安排一个需要互联网并且每天只运行一次或可选的每周运行一次的任务(如果成功执行)。我没有找到关于这种情况的例子。有人能帮我吗?谢谢。 最佳答案 按照你的问题举个简单的例子,相信会对你有所帮助:AndroidManifest.xml:YourJobService.java:classYourJobServiceextendsJobService{privatestaticfinalintJOB_ID=1;privatestaticfinallongO

android - 使用 JobScheduler API 进行位置更新

下面是我使用FireBaseJobDispatcher开始工作的演示代码。publicclassMainActivityextendsAppCompatActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);FirebaseJobDispatcherdispatcher=newFirebaseJobDispatcher(newGooglePlayDriver(thi

java - Android jobScheduler 不会因 jobFinished(params, false) 而停止

我正在尝试创建一个jobService。这是onStartJob()的样子。@OverridepublicbooleanonStartJob(JobParametersparams){Log.d(TAG,"onStartJob");Log.d(TAG,"Params="+params.getJobId());param=params;jobFinished(params,false);//startAsync();returntrue;}@OverridepublicbooleanonStopJob(JobParametersparams){Log.d(TAG,"onStopJob")

android - SyncAdapter 与 JobScheduler

排除JobScheduler仅支持API的事实>21-JobScheduler是否旨在完全取代SyncAdapters?或者SyncAdapter是否包含JobScheduler缺少的任何功能?我的用例是每隔几个小时同步一次RSS提要。这可以通过JobScheduler实现-对吗? 最佳答案 我想说JobScheduler不是SyncAdapter的直接替代品,后者具有更专业的用途(在设备和服务器之间传输数据)。另一方面,JobScheduler用于安排任务在未来某个时间点执行-就像AlarmManager-但具有更广阔的潜力。顺便

使用 setPeriodic() 时,Android JobScheduler 运行过于频繁

我注意到我预定的JobScheduler执行作业的方式过于频繁。我将其设置为每天执行一次,它需要处于空闲状态、连接到wlan并正在充电,但当满足这些条件时,作业会每10分钟甚至更频繁地执行一次。我的代码:JobInfo.Builderbuilder=newJobInfo.Builder(1,newComponentName(context.getPackageName(),SyncJobService.class.getName()));builder.setPeriodic(TimeUnit.DAYS.toMillis(1)).setRequiredNetworkType(JobIn

Android JobScheduler 总是工作 1 分钟

我正在尝试使用新的JobScheduler(tatarka兼容)实现后台刷新服务。这是我的服务@OverridepublicbooleanonStartJob(JobParametersparams){Timber.i("onstartjob:"+params.getJobId());returntrue;}@OverridepublicbooleanonStopJob(JobParametersparams){Timber.i("onstopjob:"+params.getJobId());returntrue;}这是我的工作信息publicvoidscheduleJob(Viewv