关于Asynctask的取消、停止问题。

我的程序中,使用了AsyncTask在后台进行持续的轮询,实现一个定时器的功能,在doInBackground()有Thread.sleep()的代码

其原理是一个Service获得了通知以后就关掉Asynctask,但是

task.cancel(true);

这句话并没有起作用,在task里 isCanceled()的值一直不变,查询发现,在cancel的时候,异步进程正在Sleep()的过程,这个时候对它的操作是无效的

所以如果你对异步进程取消无效的话,可以使用SharedPreference来进行传值。

在task里通过判断SP,来控制进程的终止。

 

欢迎拍砖讨论。

 

 

你可能感兴趣的:(android,异步,AsyncTask)