暂停或休眠AsyncTask而不影响UI

时间:2014-08-19 01:00:46

标签: java android multithreading android-asynctask

我可以睡觉或停止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秒在后台运行。

1 个答案:

答案 0 :(得分:4)

如果您从Thread.sleep(1000)方法中调用doInBackground(),则不会影响用户界面,因为后台线程会调用doInBackground()