问题标签 [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.

0 投票
1 回答
12546 浏览

android - IntentService 已弃用,如何将其替换为 JobIntentService?

FetchAddressIntentService使用IntentService(在 kotlin 中)实施后:

有没有人建议我如何IntentServiceJobIntentService一种好的方式替换?

IntentService在 Android-R / Android-11 中已弃用。

我已经尝试关注这方面的一些帖子,但没有人指导正确的路径如何以 AddressFetchIntentService 使用的方式将 IntentService 调用的可用性更改为 JobIntentService 调用IntentService

RG

0 投票
1 回答
891 浏览

android - 什么时候释放android服务中的协程资源?

我在我的 中使用 kotlin 协程JobIntentService,所以onHandleWork我会启动我的协程,一旦这个任务结束,我需要通过取消Job. onDestroy服务启动后立即调用,因为我在其上启动协程,onHandleWork它不会阻塞当前线程。

完成任务后是否必须取消协程?

如果是,在androidService生命周期中什么时候释放协程资源

谁能帮我这个?

0 投票
0 回答
44 浏览

android - 如何在andoid的主线程(后台线程)中将Camera作为后台服务运行

如何创建相机作为后台服务,应该在主线程之外运行。当我试图通过线程处理程序运行时,由于windgowmanager所需的 UI 线程而崩溃。我该如何解决这个问题

0 投票
1 回答
87 浏览

android - Android JobIntentService 作为另一个服务的包装器

这需要一些上下文,请与我裸露...


我已将用于评估 NFC 数据的依赖项迁移到新应用程序。每当发现 NFC 标签时,我的应用程序都会生成一个 Activity 来处理该事件。在onCreatethis 的函数中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?

0 投票
1 回答
122 浏览

android - 如何在通过广播接收器将 JobIntentService 之间的数据传递给活动时防止 TransactionTooLarge 异常

登录页面后,我正在使用 JobIntentService 从服务器下载数据并通过 BroadcastReceiver 将数据传递给活动。对于较少量的数据,它可以正常工作,但是当我处理实时数据时,它会给出以下异常:

0 投票
1 回答
661 浏览

android - JobIntentService - onHandleWork 并不总是被调用?

我有主屏幕小部件,它有一个简单的AppWidgetProviderand JobIntentService,我可以在其中完成所有工作。

问题是 - 它的工作方式是随机的。有时会,有时不会 - 最奇怪的是,我可以在日志中看到,每个小部件更新enqueueWork方法JobIntentService总是被调用,但onHandleWork方法只是有时。

(我发现与电池优化有很强的相关性,虽然不是 100%。如果我打开“自动管理应用程序”,那么它 99% 可靠地工作。如果打开它,就像抛硬币一样。有时确实如此,有时它不会。最好的说明行为是这个简短的简单视频

这是我的代码(小部件提供者):

这是我做所有工作的服务(JobIntentService):

0 投票
1 回答
281 浏览

android - 每 1 分钟显示一次通知 Android

我想在用户打开应用程序时运行一项服务,然后只要每 1 分钟安装一次应用程序就让它运行。该服务将通过调用 API 来检查是否有新订单,如果有,则会显示通知。

我做了一些研究,发现 JobIntentService 和 Broadcast Reciever 是我需要用来解决我的问题,但我无法将它们放在一起使其工作。如果有人可以提供详细的解决方案,我将不胜感激。我也想知道对于我的问题是否有比这更好的方法?下面是我设法编写的代码。

后台服务

广播接收器

0 投票
0 回答
227 浏览

android - Android Widget按钮服务不响应点击

类似的问题:服务未在应用程序小部件中的 oreo 上启动最接近我的问题是小部件在一段时间后冻结但未得到答复。

我有一个简单的小部件按钮,按下时应该发送通知。它在以下情况下不起作用:

  1. 在安装时打开应用程序后,我从最近的应用程序中清除了该应用程序
  2. 有时会随机停止工作(有时在我再次打开应用程序后会同时触发所有点击,从而导致一起触发一堆通知。)

从我目前所读到的所有内容来看,在我看来,PendingIntent 似乎正在被清除。

代码主要取自官方应用小部件指南,除了启动服务而不是活动。

小部件提供者

小部件服务

我从这里尝试了两个答案,广播方法不起作用并且看起来也是间接的,所以我添加#onCreate了调用 startForeground 的实现,这也不起作用。

我如何获得一个每次都能可靠地启动服务的按钮?任何帮助表示赞赏。

0 投票
0 回答
54 浏览

android - JobIntentServices 是否限制线程数?具有多个 JobIntentServices 的应用程序只为所有服务提供两个线程

我期待多个 JobIntentServices 总是为每个使用一个线程。

我有几个 JobIntentServices

,

,

,

等等。每个前任都有一个意图:

当我检查线程时override fun onHandleWork(intent: Intent)

我在 logcat 中看到服务仅在两个线程中分离:

Thread[AsyncTask #2,5,main]Thread[AsyncTask #1,5,main]

因此,它们每次只运行两个。我预计异步任务的数量将等于 JobIntentServices 的数量。为什么不是这样?

0 投票
0 回答
95 浏览

java - xiaomi android 7:JobIntentService.onHandleWork() 循环运行

我正在与JobIntentService做一些背景工作的班级一起工作:

这就是这个类的工作排队方式:

这在我的三星 Android 9 上完美运行。在日志中,我在每项工作中都看到了这一点:

但是当我在小米 Android 7 上测试时,我看到这个onHandleWork方法被无限期地调用:

这是为什么?我该如何阻止这个?