Java 解决AsyncTask中线程的中断异常
我有一个AsyncTask类线程,它执行以下操作:Java 解决AsyncTask中线程的中断异常,java,android,multithreading,android-asynctask,Java,Android,Multithreading,Android Asynctask,我有一个AsyncTask类线程,它执行以下操作: @Override protected Void doInBackground(Long... params) { while(true) { doSth(); try { Thread.sleep(1000); } catch (InterruptedException e) {
@Override
protected Void doInBackground(Long... params) {
while(true) {
doSth();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}}}
然后,我必须在某个地方停止线程,不管它是在睡眠还是在运行,这将导致中断的异常
我有两个问题:
-这种异常严重吗?我是否需要对其进行处理,而不仅仅是priningStackTrace()
-使用doneFlag是否是避免此异常的正确方法
private boolean doneFlag = false;
@Override
protected Void doInBackground(Long... params) {
while(true) {
doSth();
try {
doneFlag = false;
Thread.sleep(1000);
doneFlag = true;
} catch (InterruptedException e) {
e.printStackTrace();
}}}
当我想停止这个AsyncTask线程时,我会这样做:
protected void cancelThread() {
while (!this.isCancelled()) {
if (doneFlag) {
cancel(true);
}
}
}
我用doneFlag尝试了上面的代码,没有抛出中断的异常。但是,我不确定它是否有可能的bug?
非常感谢你的帮助