我的程序中,使用了AsyncTask在后台进行持续的轮询,实现一个定时器的功能,在doInBackground()有Thread.sleep()的代码
其原理是一个Service获得了通知以后就关掉Asynctask,但是
task.cancel(true);
这句话并没有起作用,在task里 isCanceled()的值一直不变,查询发现,在cancel的时候,异步进程正在Sleep()的过程,这个时候对它的操作是无效的
所以如果你对异步进程取消无效的话,可以使用SharedPreference来进行传值。
在task里通过判断SP,来控制进程的终止。
欢迎拍砖讨论。