问题标签 [jobservice]
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 - 检测应用程序被杀死/在后台时的连接变化
当我的应用程序不在前台时,我想检测何时发生网络更改(连接\断开连接),以便我可以同步用户的数据。
我尝试使用 a broadcast receiver
(就像在这个答案中一样)但是当应用程序关闭时(之后)不再接收广播Android N
。它仅在应用程序处于前台时才有效。
为了检测后台的连接变化,我尝试将Job Scheduler
(如this answer中)与.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
参数一起使用,但我的问题是该工作重复完成(每15分钟一次),即使用户仍然连接到互联网。
我的目标是在重新连接互联网时完成一次工作,然后停止工作,直到用户断开连接并再次连接。每次连接到互联网时都应该完成一次该工作,然后等待重新连接(不重复)。
是否有可能通过Job Scheduler
(或以任何其他方式)实现这一目标?
android - JobIntentService 不适用于 Oreo 以下的 API (API <= 26)
我正在为 Android 设置一项新服务,并且是第一次使用 JobIntentService。该服务还包括一个通知,当我在低于 Oreo 的 Android 版本中运行该应用程序时,该通知不会显示。工作本身一直工作到最后。
这是我尝试过的代码,对于 API >= 26 非常有效。
我的 gradle 文件如下所示:
我还在 gradle 文件中添加了这个库:
清单文件中的此权限:
我在控制台中收到此警告。
android - Scheduled JobService 仅在我打开我的应用程序时运行
使用 JobScheduler 我创建了一个必须每 15 分钟定期运行一次的作业。但它只有在我的应用程序打开时才有效。我
当我运行应用程序时,所有排队的作业一个接一个地运行,即使在设备重新启动后也是如此。
AndroidManifest.xml
MyJobService.class
这就是我设置 JobScheduler 的方式
那么这里有什么问题呢?
android - JobService 重新安排
我想知道的是,JobParameters
发送的是否是在重新启动时jobFinished
传递给的那些?onStartJob
JobService
假设我在 my 中启动一个线程,JobService
并在其中调用jobFinished
true 作为needsReschedule
参数。如果我在JobParameters
extras 中添加了一些新的东西jobFinished
,当最终onStartJob
再次被调用时,这会是可见的吗?还是将onStartJob
始终仅提供JobParameters
最初启动服务时提供的内容?
android - 为什么 JobScheduler 没有按预期工作
我使用 JobScheduler 每 15 分钟运行一次作业。但它没有按预期工作。在这里,我附上了我的代码。
我的作业服务实用程序类
我计划每 15 分钟运行一次作业。但它不是每 15 分钟开始工作。我将附上输出。
开始于 ==> 15:10:49 结束于 ==> 15:10:59 开始于 ==> 15:25:59 结束于 ==> 15:26:09 开始于 ==> 15:56:10结束于 ==> 15:56:20 开始于 ==> 16:41:44 结束于 ==> 16:41:54
我不知道为什么它不能每 15 分钟工作一次。而且我想在特定时间开始工作。例如每天 8 点钟。如何使用 JobSceduler 实现这一目标。
android - 为什么 JobService 没有重复?
我正在尝试开发JobScheduler
,并且我希望应用程序在应用程序被系统杀死时每 1 分钟执行一次。
AndroidManifest.xml
主要活动
百度招聘服务
当我使用setPeriodic(AlarmManager.INTERVAL_FIFTEEN_MINUTES)
. onStartJob
尚未调用。
当我使用setOverrideDeadline(60000)
. onStartJob
唯一一次在第一次演出。
但是BaiduJobService
时间到了似乎没有调用。
我错过了什么吗?提前致谢。
android - 我打电话时会重新创建 Android 中的服务
1) 我正在开始Service
或JobService
通过startService
,startForegroundService
对于 android Oreo 和ContextCompat.startForegroundService
2)在onCreate
我做的服务的方法中startForeground (1, notification)
,在onDestroy
我做的stopForeground (false)
在onCreate
service 方法中,BroadcastReceiver
启动,接收TelephonyManager.EXTRA_STATE
诸如 OFFHOOK、RINGING、IDLE 之类的事件
这是注册接收器的代码
启动服务后,我立即致电
我开始打电话
我进入服务日志
Unstoppable - 1, Unstoppable - 2 - 这是我开始查看服务是否实时运行的计时器。
我不明白为什么服务onCreate
再次调用而不调用onDestroy
,谁能帮我解决这个问题并在拨打电话时使服务稳定工作?
服务代码
java - 每次互联网可用时运行工作者
我正在开发一个 Android 应用程序,每次用户打开 Wi-Fi 或移动数据时,我都使用 Firebase JobDispatcher 库来运行后台作业,但不幸的是,该库已被弃用,现在新的 WorkerManager 是要走的路。
我的问题是每次只有互联网可用时如何使用 WorkerManager 运行作业?
我已经检查了 WorkerManager 库迁移指南和文档,但我无法使用 OneTimeWorkRequest 或 PeriodicWorkRequest 来实现。
这是我与 Firebase JobDispatcher 库一起使用的代码来实现这一点。
android - 使用 JobService 的 Jobscheduler 在几个小时后停止工作
我正在尝试测试使用 JobScheduler 在 Android API 23 上安排后台任务的可靠性,因为我注意到有时它会出现异常并停止工作。
这就是我在 SystemManager.java 类中安排作业的方式:
我使用 Retrofit 在 NetworkManager.java 类中进行网络调用:
问题
在我初始化应用程序并进行第一次网络调用后,我退出了应用程序,断开了 USB 连接并关闭了屏幕。我把它留了一夜,然后来检查我的服务器数据库上的记录以获取结果。
- 设备以几乎相同的速率持续发送服务器网络数据,每分钟至少两次,持续了 10 个小时!(这不是预期的,因为设备应该进入打盹,对吧?)
- 之后就没有再发送请求了!从凌晨 3 点到上午 9 点 30 分,我没有收到任何东西发送到服务器。我打开我的设备屏幕,将其连接到电源,打开应用程序......等了一个小时,仍然没有发送更多内容。为什么?服务刚刚被杀死了吗?我该如何解决这样的问题?
注意
当然,我不打算在真正的应用程序上做如此繁重的重复工作。但是,我只是在做一个测试应用程序来了解 JobScheduler 和 JobService 的行为。又为什么突然就白死了,再也没有开始了?!
android - 互联网连接更改工作服务需要安排每次活动?
我正在阅读android 文档,以便在 android pie 及以下版本的网络更改上注册一个监听器。
我发现,对于 lolipop 以上的版本,我可以运行一个监视网络变化的作业服务。
所以我的问题是它是否监控网络变化,而不管应用程序是否正在运行。我如何在我的应用程序活动生命周期中照顾这项工作服务。
目前我所做的是我在 onResume 中安排这项工作并在我的活动中停止在 OnDestroy 中。但我希望它在每次网络更改时运行