![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JobService
TechMerger
Android平台资深从业者,公众号「Tech Merger」。
展开
-
JobService源码探究之 onStartJob()返回false立马被destroy
上一章节讲解了JobService的基本特性和使用方法,本章我们下面从源码(Android OREO)层面探究以下几个疑问。疑问一onStartJob()返回false之后,Job几乎立马就被destory?疑问二自行cancel了JobService后,onStopJob()即使返回true也不能被重新启动?首先我们先来认识一下JobScheduler原创 2018-02-02 16:06:21 · 3871 阅读 · 0 评论 -
JobService源码探究之 Job自行Cancel后即使onStopJob返回true也不会被再启动
上章节遗留的疑问二,本章将继续探究缘由。疑问二自行cancel了JobService后,onStopJob()即使返回true也不能被重新启动?照例直接上源码。cancel是IJobScheduler的API,我们直接查看该API的实现。frameworks/base/services/core/java/com/android/server/job/J原创 2018-02-05 17:23:33 · 1800 阅读 · 0 评论 -
JobService源码探究之 onStartJob()里如何优雅地处理耗时逻辑?
首先我们要思考如下两个问题。思考一如果我们在onStartJob()里处理耗时逻辑,导致onStartJob()没有及时返回给JobSchedulerContext。最终结果是怎么样?是ANR?还是因为超时,该Job可能被强制停止和销毁?思考二如果onStartJob()里起了新线程处理耗时逻辑,但是返回值返回了false,那么系原创 2018-02-06 13:20:40 · 2005 阅读 · 0 评论 -
JobService源码探究之 onStartJob()里执行耗时逻辑导致Job可能被强制销毁
在上篇《JobService源码探究之 onStartJob()里如何优雅地处理耗时逻辑?》里我们留下了如下两个疑问。在本篇里一一解答。疑问一为什么onStartJob()直接执行耗时逻辑后,即便自己没有finish该Job,但是Job还是会被自动销毁?疑问二为什么onStartJob()里开启新线程执行的耗时逻辑超过10min,但是Job被自动停止和销毁?原创 2018-02-06 17:24:00 · 2686 阅读 · 0 评论 -
JobService的使用介绍
JobService是Android L时候官方加入的组件。适用于需要特定条件下才执行后台任务的场景。由系统统一管理和调度,在特定场景下使用JobService更加灵活和省心,相当于是Service的加强或者优化。原创 2018-01-31 20:59:25 · 26774 阅读 · 3 评论 -
JobService完结篇 JobService和Service的多角度对比
JobService的使用,特性和一些流程的源码探究都讲完了。那我们回过头来思考下这个在Android L时候加入的JobService和元老Service到底有何异同,各有什么优势?在需要使用Service的时候,对于JobService和Service,我们该如何用哪一个?首先从他们的实现原理去对比。◆Service由APP侧发出请求,Act原创 2018-02-07 17:45:20 · 4593 阅读 · 0 评论