问题标签 [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 - 无法使用 JobIntentService 安排警报
我一直在研究如何安排针对 Oreo + 设备的警报。我目前的方法是使用AlarmManager
铃声服务和广播接收器。我让警报响起并显示通知,但 Oreo + 设备不会触发通知和警报。
我了解到,JobIntentService
由于Doze
和其他背景限制,使用是一种很好的做法。目前,当使用 a 时JobIntentService
,我收到一个错误:
java.lang.RuntimeException:执行 doInBackground() 时出错
我做错了吗?我真的需要实施AsyncTask
吗?
java - JobIntentService 和 IntentService 有什么区别?
我不明白这两个 API 有什么区别。我的意思是什么时候使用第一个。为什么会有 JobIntentService ?提前致谢
android - 在 JobIntentService 中将 setInterruptIfStopped 设置为 true 有什么意义?
JobIntentService 有一个setInterruptIfStopped
方法,当设置为 时,如果作业停止true
,则导致当前运行:AsyncTask
cancel
void setInterruptIfStopped(布尔型中断IfStopped)
如果作业停止,控制在 onHandleWork(Intent) 中执行的代码是否会被中断。默认情况下这是错误的。如果调用并设置为 true,则任何时候调用 onStopCurrentWork(),该类都会首先调用 AsyncTask.cancel(true) 来中断正在运行的任务。
https://developer.android.com/reference/android/support/v4/app/JobIntentService
但是,这实际上并不会中断onHandleWork
. 相反,这只是boolean
在AsyncTask
to中设置 a true
,我需要检查它onHandleWork
以手动中断我的工作。
public final boolean isCancelled()
如果此任务在正常完成之前被取消,则返回 true。如果您在任务上调用 cancel(boolean),则应定期从 doInBackground(Object[]) 检查此方法返回的值,以尽快结束任务。
https://developer.android.com/reference/android/os/AsyncTask
但是为此我们已经有了JobIntentService
'isStopped
方法:
布尔 isStopped ()
如果 onStopCurrentWork() 已被调用,则返回 true。您可以在执行工作时使用它来查看是否应该停止它。
据我了解,我们甚至无法访问AsyncTask
'isCancelled
方法。那么 in 有什么用setInterruptIfStopped
呢JobIntentService
?
android - 来自 JobIntentService 的 ANR,它做的很少
我有一个 JobIntentService,它根本没有做很多工作,但今天导致了 ANR。
通过以下方式从伴随对象调用代码有什么问题吗?
根据文档,没有任何内容onHandleWork()
导致 ANR,因为该方法是从单独的线程调用的。
工作通过伴随对象排队的方式是否存在会导致 ANR 的问题?注入代码是标准的 Dagger2 依赖注入,我从来没有遇到过问题。
ANR 看起来像这样
12-03 13:29:42.272 872-872/? I//system/bin/tombstoned: intercept for pid 29905 and type kDebuggerdNativeBacktrace terminated: due to input
java - JobIntentService onHandleWork 未被调用
我有一个 JobIntentService 的骨架类
}
我已将服务包含在清单中
并调用正确的入队方法
但是 onHandleWork 永远不会被调用。我已经查看了有关正确设置服务并确保 onBind 未被覆盖的所有页面,但这仍然不起作用,想知道另一组眼睛是否会发现我错过的东西。谢谢
android - 在 JobIntentService 中未调用 onHandleWork()
我需要在我的应用程序运行时和启动时处理通过 AlarmManager 发布的意图。我编写了 JobIntentService 的子类来处理意图,但它没有按预期工作:未调用 onHandleWork。
当处理程序是 IntentService 时,我的实现工作,除了在启动时,由于后台服务的限制。因此,我尝试改用 JobIntentService。
onStartCommand 被调用。文档说这种方法:
进程在作为 pre-O 服务运行时启动命令,将它们排入队列以便稍后在 onHandleWork(Intent) 中调度。
我不知道“稍后”在这里应该是什么意思,但实际上并没有调用 onHandleWork,即使已经以预期的意图调用了 onStartCommand。
我已经阅读了类似问题的答案,并确保我不会覆盖其他方法。我还为我认为正确的服务创建了一个清单条目 - 否则不会调用 onStartCommand。
这就是我创建与 AlarmManager 一起使用的 PendingIntent 的方式:
关于我所缺少的任何想法?
java - Android 8.0 - Job Intent Service 在启动时不运行应用程序
最初我有 Android 7.0 并且使用和服务没有任何问题BroadcastReceiver
。但是随着 Android 8.0 的变化。我需要切换到一个JobIntentService
,以便我的应用程序可以在启动时运行。
我已经尝试迁移我的代码以匹配JobIntentService
但在启动时没有发生任何事情。我不确定原因是因为我的服务等级还是我的BroadcastReceiver
等级。
AndroidManifest.xml
背景服务.java
启动启动.java
所以我试图从本质上开始Home.class
启动。
android - Jobintentservice 在 android oreo 上每隔 X 小时触发一次通知
我想为我的广告发出通知,所以我使用了 Alarmmanager 和 JobIntentService 但我没有收到通知。
这里是接收器。
以下是扩展 JobIntentService 的服务类。
在 notifyTasker isTimerTask() 中,我检查 currentTime 是否等于我的祈祷时间。如果是真的,那么我会触发通知。
以下是我从活动中激活的警报管理器。
我尝试使用上述代码为 android oreo 触发通知,但它不起作用。是否有可能使用作业计划在特定时间触发通知。因为通知将在特定的 azan 时间触发。
android - 应用程序不能使用 JobIntentService 安排超过 100 个不同的作业
这是我的JobIntentService
但是,我从抱怨的 crashlytics 中遇到了很多崩溃100 distinct jobs
:
有什么理由解决吗?
在将新的排队之前,我曾尝试取消它,如下所示:
但是,我遇到了另一个问题:
你们有什么建议吗?
P/s:我无法在我的设备上重现它,但我在 CrashReport 工具中得到了数千次。在加入新工作之前取消工作确实解决了 100 个不同的工作问题,但它引发了如上所述的另一个错误。
android - 避免 linter 报告 UnsafeProtectedBroadcastReceiver 后,BroadcastReceiver 在 android 9 中不起作用
我使用 scheduleAlarm 来触发BroadcastReceiver
哪个 StartJobIntentService
它工作正常,但是当我检查我得到的代码时,UnsafeProtectedBroadcastReceiver
我添加了 if 条件检查onReceive
方法来填充操作但JobIntentService
没有工作。但如果我更换了条件,它就可以正常工作。请注意,我正在使用 android 9.any 帮助提前感谢
BroadCastReceiver
主要文件
工作意向服务
警报