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回调了,这真的是坑啊,取消任务还必须要开始后才能有效,然而想要达到真的取消只能另想他法了。
按照文档说的写完之后效果也出来了,但是存在一个问题那就是取消任务的问题,就如上面博文所说:
于是我调用jobFinished方法后我以为onStopJob方法会被调用,却发现并没有执行,于是我开始看源码
发现这个方法执行的并没有去调用onStopJob方法,那么我就想到底什么时候会调用,我猜想是不是cancel的时候才会调用,于是我又去测试了一翻,结果发现还是没有调用(这边onStartJob我是10秒执行的),这就很尴尬了。{:大哭}
我又看了一遍上面的博文仔细的想了一下,他既然说onStopJob的调用与否和onStartJob的返回值有关,那是不是只有在onStartJob中执行完才会有效果,于是我在onStartJob方法里面加了一个延迟任务,任务没结束前去取消任务,果然onStopJob回调了,这真的是坑啊,取消任务还必须要开始后才能有效,然而想要达到真的取消只能另想他法了。
相关文章推荐
- shell 中 &&和||的方法
- TNO:CI/CD与微服务架构
- opencv学习笔记(二十一) Sobel算子边缘检测
- Cassandra工具:cqlsh(the cql shell)
- CentOS7.2下安装pdf2htmlEX
- 玩转linux主机--centos设置宽带pppoe上网
- linux下socket编程
- 一个强大的linux命令——find之exec
- ubuntu 14.04 阿里云软件源
- Linux平台的SVN服务器的配置及搭建
- 用service启动nginx
- Linux(CentOS)安装JDK(.tar.gz)并配置
- Centos 6.4 安装elasticsearch+kibana
- 容器落地案例:TNO如何用容器搭建CI/CD与微服务架构
- <学习笔记> Linux环境下载JDK
- runloop之于thread
- CentOS 7.x安装ELK(Elasticsearch+Logstash+Kibana)
- fopen 文本文件与二进制文件区别
- 一个功能强大的linux命令——find
- git 常用命令