我正在使用异步任务。我使用此变量初始化我的任务
fhr_alg = new AddStringTask();
我想使用一个开始和停止按钮,这样当我停止它时,线程取消,并在单击开始按钮时启动一个新线程。 我用
fhr_alg.cancel(true);
取消任务。在我的onclick事件中为开始按钮,当我写
fhr_alg.execute;
它显示错误,表明任务仍在运行。我在doInBackground中使用了isCancelled()但没有任何反应。我需要帮助来解决这个问题。
这是我的代码开始和停止按钮
k.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if(task!=null)
{
task.cancel(true);
}
try {
w.clearView();
} catch (Exception e) {
// TODO: handle exception
}
}
});
j.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
flag = true;
Thread tt = new Thread()
{
public void run()
{
try{
sleep(100);
}catch(Exception e){
}finally{
AddStringTask task = new AddStringTask();
task.execute();
}
}
};
tt.start();
int m=112;
String s=""+m;
if(flag)
w.loadUrl("javascript:callJS(\""+s+"\")");
}
它给我一个错误说
Can't create handler inside thread that has not called Looper.prepare()
答案 0 :(得分:0)
我认为问题是你调用task.canle(true);听众内部。
尝试在Activity类中创建一个sub,如
public void cancleTask(){
task.canle(true);
}
并在你的听众中调用此子目录。