您的位置:首页 > 运维架构

JobScheduler使用中遇到的onStopJob没有回调的问题

2017-01-09 11:29 295 查看
今天主管说有一个延迟任务机制JobScheduler,我说我研究下,于是我搜索了下,这篇写的不错:http://blog.csdn.net/bboyfeiyu/article/details/44809395

按照文档说的写完之后效果也出来了,但是存在一个问题那就是取消任务的问题,就如上面博文所说:



于是我调用jobFinished方法后我以为onStopJob方法会被调用,却发现并没有执行,于是我开始看源码



发现这个方法执行的并没有去调用onStopJob方法,那么我就想到底什么时候会调用,我猜想是不是cancel的时候才会调用,于是我又去测试了一翻,结果发现还是没有调用(这边onStartJob我是10秒执行的),这就很尴尬了。{:大哭}

我又看了一遍上面的博文仔细的想了一下,他既然说onStopJob的调用与否和onStartJob的返回值有关,那是不是只有在onStartJob中执行完才会有效果,于是我在onStartJob方法里面加了一个延迟任务,任务没结束前去取消任务,果然onStopJob回调了,这真的是坑啊,取消任务还必须要开始后才能有效,然而想要达到真的取消只能另想他法了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: