问题标签 [jobintentservice]
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 - Android JobIntentService 似乎已重新启动
我有一个监听电源连接事件的广播接收器。每当设备连接到电源时,我都会尝试将文件从 APP 传输到运行 Ubuntu 的机器上的服务器。文件通过蓝牙传输。由于文件传输很重要,如果由于任何原因传输出错,或者第一次尝试连接不成功,我最多重试 6 次,每次尝试之间留出 3 分钟。
一开始,我使用的是一个异步任务,只要我们仍然可以重试并且文件传输没有成功完成,它就会保持活动状态。我读到,在广播接收器中有一个 asynctask 并不是一个完全有意义的好习惯,特别是因为我强迫任务运行很长时间。因此,我决定更改为 JobIntentService,这样每次接收器捕获到电源连接事件时,我都会发出将文件传输到我的计算机的作业。在作业中,在文件传输完成或失败后,我会设置一个警报,向广播发送待处理的意图并再次调用作业。
我正在运行它,我注意到(与以前不同)在传输过程中我收到太多“对等连接重置”错误,这让我想知道作业是否在完成之前被停止或类似的东西? . 这些错误过去在我之前的实现中不会发生。然后,我还注意到,由于某种原因,操作系统似乎再次启动了 JobIntentService(没有启动它的事件),这导致我的代码不一致并导致我丢失了一些文件(我不应该允许此作业的多个实例同时运行)
我的问题是,为什么您认为服务已重新启动?JobIntentService 是否可以在 BT 传输期间由操作系统完成并重新启动?这些文件很重,因此需要几分钟才能从应用程序传输到机器。我正在考虑尝试使用前台服务而不是 JobIntent 并通知该服务或返回我之前的实现。
有什么建议么?
这就是我所说的 Intent Job。
这是 JobIntentService 类
日志猫。突出显示的部分显示了我认为操作系统创建 JobService 的新实例并运行它。
android - 计划的 JobIntentService 永远不会在 API >= 27 Oreo 上启动
我有一个安排工作的小部件,我得到了结果:来自 JobScheduler.schedule(job) 的 RESULT_SUCCESS,但我的服务永远不会启动。我等了30多分钟。
清单.xml
WidgetOne 类 (kotlin)
ServiceWidgetOne 类 (kotlin)
在我的 MainActivity 中,我什么也不做。当我在日志中将小部件放到主屏幕时,我有:
仅此而已:(我的服务永远不会启动
我在清单中试过:
但它没有效果感谢您的帮助!
android - 我的实体手机华硕没有收到 BOOT_COMPLETED
我测试了一个在模拟器BroadcastReceiver
中运行的,它运行成功。JobIntentService
但是当我测试我的物理手机 ASUS ZE551ML 的代码时它失败了。
清单文件:
广播接收器类:
JobIntentService 类:
重复:代码在模拟器设备、奥利奥前和奥利奥设备上运行良好。
该日志不包含与boot_completed reveiced
我的应用程序相关的任何内容。
谢谢。
android - Oreo 中的 SMS_RECEIVED 广播接收器和 JobIntentService
我已经阅读了有关 Android API Level 26 中新背景限制的 Android 文档,考虑到这些,我设计了我的应用程序如下:
- 该应用程序具有
BroadcastReceiver
收听"SMS_RECEIVED"
广播的功能。这是一个隐式广播,现在在 Oreo 中受到限制,但它是例外列表中的一个。 - 当它
BroadcastReceiver
运行时,它会将一个新任务排入队列,由 a 执行JobIntentService
。接收广播时,应用程序应暂时列入白名单,因此JobIntentService
有机会做它的事情。
即使我从“最近的应用程序”列表中关闭该应用程序,所有这些似乎都工作得很好。但是,我收到一些用户的报告,显然每隔几天,他们必须再次打开该应用程序,因为它突然停止在后台工作。
为什么操作系统突然停止向"SMS_RECEIVED"
我的应用程序发送广播?如果不是这样,那一定是JobIntentService
不允许运行。为什么不?该应用程序应在收到短信后立即列入白名单。我有什么误解?
android - JobIntentService 作为前台服务
我正在使用基于此 Google 示例的地理围栏。但是,我发现除非我在谷歌地图或其他基于位置的应用程序中,否则地理围栏转换不会在后台准确发生。正因为如此,我试图把它JobIntentService
变成一个前台服务,它将接收它自己的定期位置更新。
有人可以解释它的生命周期JobIntentService
以及创建方法时调用方法的顺序吗?
请记住,我正在使用以下类:
android - Android Oreo JobIntentService 在 Android 7 及以下版本中继续在后台运行,在 Android 8 及以上版本中经常崩溃
我最近将我的所有服务替换为前台服务和 JobIntentService,因为在 oreo 及更高版本中存在一些后台执行限制(https://developer.android.com/about/versions/oreo/background)。根据文档,JobIntentService 的作用类似于 Android 7 及更低版本的 Intent Service,并且类似于 Android 8 及更高版本的 JobScheduler。我注意到 Google 提供的新 JobIntentService 存在问题。
安卓8及以上:
在 android 8 及更高版本中不断发生崩溃。这里提出了一张票,提到了同样的问题https://issuetracker.google.com/issues/63622293,我添加了一些极客建议的临时修复。
Android 7 及更低版本: 工作完成后,其行为类似于 Intent Service 的 JobIntentService 不会停止。
我已经在服务中实现了 JobIntentService,只要用户执行某些操作就会触发。
代码
为了避免 JobIntentService 崩溃,我从https://issuetracker.google.com/issues/63622293中引用了一些参考资料
android - JobIntentService 在以 api 26 为目标后在 Android O (8) 及更高版本中崩溃
我已将目标更改为 API 27 (Android O) 并将 IntentService 迁移到 JobIntentService 之后它在 Android O(8) 及更高版本的某些设备中开始崩溃。
这是崩溃日志。
android - JobIntentService 定期运行?
我的项目中有一个 JobIntentService。但是当我为此服务创建 startService 时,“ onHandleWork ”方法只运行 1 次。我怎样才能让它定期运行?
android - GCM:又一个 BIND_JOB_SERVICE 权限错误——IntentService 到 JobIntentService
问题:由于我现在需要以 Oreo 为目标来提交应用程序,因此我必须将我的 RegistrationIntentService 更改为从 JobIntentService 而不是 IntentService 继承。我仍在使用 GCM,但这应该没什么区别。请注意,这是 Xamarin C# 代码。
错误是我的静态 EnqueueWork 方法中总是出现异常:
定时服务ComponentInfo{com.emergencyuniversity.EUAlert/md58d0653b4094c2dbc798f6d984e1c1386.RegistrationIntentService}不需要android.permission.BIND_JOB_SERVICE权限
我已将 OnHandleIntent 更改为 OnHandleWork,现在我在以前调用 StartService 的地方调用了静态 EnqueueWork 便捷方法。
我的 EnqueueWork,得到了异常:
在清单中,我添加了:
我也尝试过导出错误,并将该权限放在一堆不同的地方。
我所做的另一项更改是由于编译器错误而删除了以下内容:
除了 Android 文档之外,我可能已经阅读了所有可以想象到的关于此的帖子,包括:
https://medium.com/til-kotlin/jobintentservice-for-background-processing-on-android-o-39535460e060
JobService 不需要 android.permission.BIND_JOB_SERVICE 权限
为什么我仍然会收到此错误?任何帮助将不胜感激。谢谢。
java - 无法访问 JobIntentService 中的类字段值
我正在尝试JobIntentService
在 Android 上使用,但无法访问onHandleWork
方法内的类字段。我的discoverable
字段在方法中似乎总是为空onHandleWork
。
这是我的 JobIntentService 类:
我的主要活动课: