给定的代码在doInBackground()中工作。 while循环总是如此,但我不知道它如何调用catch中的其他方法。如何有效地使用InterruptedException
有人可以解释我的技术,我们如何受益于这种技术。我不知道如何以及何时离开循环。
doInBackground
if(isRunning)
{
while (true) //this loop should run always.
{
try
{
Thread.sleep(1L);
}
catch (InterruptedException ex)
{
Log.e("Testing Interuption", "error=" + ex.getMessage());
// some working here is also running
}
}
}
它可以调用任何声明一段时间后,还是没有?我的意思是它可以摆脱while循环或不循环。
编辑
什么时候当另一个的AsyncTask正在呼叫Thread.sleep()方法的Interuption Occur.It装置;它会中断(意味着赶上)。我对吗?我要求Multiple AsyncTasks
设置CameraPreview using Bitmap
@TargetApi(11)
public void start()
{
if (Build.VERSION.SDK_INT >= 11)
{
executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, new Void[0]);
return;
}
execute(new Void[0]);
}
查看我的编辑请。这意味着AsyncTask的另一个实例调用Thread.sleep();第一个实例调用中断。我是否正确 – Nepster
不。Thread.sleep()唯一能做的就是让线程进入休眠状态。如果另一个线程进入睡眠状态,而第一个线程不会以任何方式影响第一个线程。对于第一个被中断的线程,一些线程需要调用[Thread#interrupt()](http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#interrupt%28% 29)在线程上。 –
那么为什么会发生interuptionException。我想知道它何时会发生,我怎么能控制它。 – Nepster