问题标签 [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 - IntentService 已弃用,如何将其替换为 JobIntentService?
FetchAddressIntentService
使用IntentService
(在 kotlin 中)实施后:
有没有人建议我如何IntentService
以JobIntentService
一种好的方式替换?
IntentService
在 Android-R / Android-11 中已弃用。
我已经尝试关注这方面的一些帖子,但没有人指导正确的路径如何以 AddressFetchIntentService 使用的方式将 IntentService 调用的可用性更改为 JobIntentService 调用IntentService
。
RG
android - 什么时候释放android服务中的协程资源?
我在我的 中使用 kotlin 协程JobIntentService
,所以onHandleWork
我会启动我的协程,一旦这个任务结束,我需要通过取消Job
. onDestroy
服务启动后立即调用,因为我在其上启动协程,onHandleWork
它不会阻塞当前线程。
完成任务后是否必须取消协程?
如果是,在android
Service
生命周期中什么时候释放协程资源
谁能帮我这个?
android - 如何在andoid的主线程(后台线程)中将Camera作为后台服务运行
如何创建相机作为后台服务,应该在主线程之外运行。当我试图通过线程处理程序运行时,由于windgowmanager
所需的 UI 线程而崩溃。我该如何解决这个问题
android - Android JobIntentService 作为另一个服务的包装器
这需要一些上下文,请与我裸露...
我已将用于评估 NFC 数据的依赖项迁移到新应用程序。每当发现 NFC 标签时,我的应用程序都会生成一个 Activity 来处理该事件。在onCreate
this 的函数中NfcActivity
,启动了一个后台服务(我们称之为它MyNfcHelperService
)来检索扫描标签上的一些数据:
此服务生成的作品稍后会被NfcActivity
. 过去一切正常,但一旦发布到野外,我们注意到一些崩溃,这会报告Not allowed to start service Intent
调用startService(intent)
。
我很快就看到了这篇相关的帖子,这表明这是由于对后台进程的 RAM 管理进行了一些改进(在 Android 8 中引入)。
根据接受的答案和提出的评论,我研究了JobIntentServices 上的文档并最终得到了类似的设置。我本来希望将MyNfcHelperService
所有内容放在一起并将其逻辑移动到MyJobIntentService
. 但是里面发生的事情MyNfcHelperService
对我来说绝对是一个黑匣子。因此,我将上述服务包装在onHandleWork
我的派生对象中JobIntentService
,如下所示:
然后我将这个类应用于NfcActivity
:
到目前为止,代码似乎工作。但是我很犹豫是否将它发布到野外,因为它感觉有点hacky,我不确定这个解决方案是否真的解决了上述问题。毕竟,我知道这个基础设施会根据计划的作业创建后台服务。
那么,我的代码对java.lang.IllegalStateException: Not allowed to start service Intent
错误是否稳健,还是我完全走错了路?如果是后者,考虑到我无法访问MyNfcHelperService
?
android - 如何在通过广播接收器将 JobIntentService 之间的数据传递给活动时防止 TransactionTooLarge 异常
登录页面后,我正在使用 JobIntentService 从服务器下载数据并通过 BroadcastReceiver 将数据传递给活动。对于较少量的数据,它可以正常工作,但是当我处理实时数据时,它会给出以下异常:
android - JobIntentService - onHandleWork 并不总是被调用?
我有主屏幕小部件,它有一个简单的AppWidgetProvider
and JobIntentService
,我可以在其中完成所有工作。
问题是 - 它的工作方式是随机的。有时会,有时不会 - 最奇怪的是,我可以在日志中看到,每个小部件更新enqueueWork
方法JobIntentService
总是被调用,但onHandleWork
方法只是有时。
(我发现与电池优化有很强的相关性,虽然不是 100%。如果我打开“自动管理应用程序”,那么它 99% 可靠地工作。如果打开它,就像抛硬币一样。有时确实如此,有时它不会。最好的说明行为是这个简短的简单视频
这是我的代码(小部件提供者):
这是我做所有工作的服务(JobIntentService):
android - 每 1 分钟显示一次通知 Android
我想在用户打开应用程序时运行一项服务,然后只要每 1 分钟安装一次应用程序就让它运行。该服务将通过调用 API 来检查是否有新订单,如果有,则会显示通知。
我做了一些研究,发现 JobIntentService 和 Broadcast Reciever 是我需要用来解决我的问题,但我无法将它们放在一起使其工作。如果有人可以提供详细的解决方案,我将不胜感激。我也想知道对于我的问题是否有比这更好的方法?下面是我设法编写的代码。
后台服务
广播接收器
android - Android Widget按钮服务不响应点击
类似的问题:服务未在应用程序小部件中的 oreo 上启动最接近我的问题是小部件在一段时间后冻结但未得到答复。
我有一个简单的小部件按钮,按下时应该发送通知。它在以下情况下不起作用:
- 在安装时打开应用程序后,我从最近的应用程序中清除了该应用程序
- 有时会随机停止工作(有时在我再次打开应用程序后会同时触发所有点击,从而导致一起触发一堆通知。)
从我目前所读到的所有内容来看,在我看来,PendingIntent 似乎正在被清除。
代码主要取自官方应用小部件指南,除了启动服务而不是活动。
小部件提供者:
小部件服务:
我从这里尝试了两个答案,广播方法不起作用并且看起来也是间接的,所以我添加#onCreate
了调用 startForeground 的实现,这也不起作用。
我如何获得一个每次都能可靠地启动服务的按钮?任何帮助表示赞赏。
android - JobIntentServices 是否限制线程数?具有多个 JobIntentServices 的应用程序只为所有服务提供两个线程
我期待多个 JobIntentServices 总是为每个使用一个线程。
我有几个 JobIntentServices
,
,
,
等等。每个前任都有一个意图:
当我检查线程时override fun onHandleWork(intent: Intent)
我在 logcat 中看到服务仅在两个线程中分离:
Thread[AsyncTask #2,5,main]和Thread[AsyncTask #1,5,main]
因此,它们每次只运行两个。我预计异步任务的数量将等于 JobIntentServices 的数量。为什么不是这样?
java - xiaomi android 7:JobIntentService.onHandleWork() 循环运行
我正在与JobIntentService
做一些背景工作的班级一起工作:
这就是这个类的工作排队方式:
这在我的三星 Android 9 上完美运行。在日志中,我在每项工作中都看到了这一点:
但是当我在小米 Android 7 上测试时,我看到这个onHandleWork
方法被无限期地调用:
这是为什么?我该如何阻止这个?