我创建了一个异步任务,在它的doInBackground()方法中开启了一个线程,代码如下:
private class myAsyntask extends Asynctask{
doInBackground(){
Thread t = new Thread(new Runnable(){
public void run()
{
while(someBoolean!=true){
Thread.currentThread.sleep(100);
}
}
});
}
onPostExecute(){
//do something related to that variable
}
}
我面临的问题是,
Thread.sleep()
的第一次迭代后,调用了onPostExecute()
,而我认为异步任务会在后台运行此线程,并在该布尔值为真时调用onPostExecute()
。我无法理解为什么会发生这种情况?
doInBackground()
中的Thread
是否指向后台线程?我希望它不会阻塞用户界面。 - AlstonThread.sleep()
方法时会影响调用该方法的线程。由于它在doInBackground()
中被调用,因此是后台线程在休眠。也就是说 - 它不会阻塞用户界面。 - Jave