所以我使用AsyncTasks编写了一个多线程的Android应用程序,我遇到了两个问题:
当任务完成并返回结果时,线程仍在后台运行,我无法弄清楚如何让它们消失,
当主页键被击中时,工作线程继续工作,我不知道如何阻止它们。有谁知道怎么做?
因此取消或完成都不能阻止这些线程!我该怎么办?
答案 0 :(得分:1)
你不应该删除AsyncTask,一旦调用onPostExecute就应该完成。
AsyncTask有一个cancel()方法,您可以使用该方法告诉任务您希望它自行停止。您可以在onPause()中调用它。
答案 1 :(得分:0)
我将这个活动基类用于执行异步任务的活动,我在onStop方法上停止它们,即
package com.xxxxxx.activity;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.DialogInterface.OnClickListener;
import android.os.AsyncTask;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class WkActivity extends Activity {
protected AsynchronousTask aTask;
private AlertDialog dialog;
@Override
protected void onStop() {
super.onStop();
stopAsyncOperation();
}
private void stopAsyncOperation(){
if( aTask != null){
if( aTask.getStatus().equals( AsyncTask.Status.RUNNING )){
aTask.cancel( true );
}
}
}
}