我可以睡觉或停止AsycTask的执行而不影响用户界面吗?有没有什么方法除了创建一个新的主题来实现这一目标(我相信这不会影响用户界面)?
解释
public class MyAsync extends AsyncTask<....>{
@Override
..doInbackground(){
//do something
for(....){
//sleep this Asynctask
//I want to delay my for loop
}
//do something
}
}
创建新主题并不是我想要的,如下所示:
//inside doInBackground()
new Thread(new Runnable(){
@Override
public run(){
for(..){
Thread.sleep(1000);//sleeping for 1 second
}
}
});
//other parts
P.S。我使用服务中的AsyncTask 每隔N秒在后台运行。
答案 0 :(得分:4)
如果您从Thread.sleep(1000)
方法中调用doInBackground()
,则不会影响用户界面,因为后台线程会调用doInBackground()
。