在我的应用程序中,我使用asynctask进行操作。但是我也使用处理程序在超时的情况下取消我的任务。
这是我的处理程序操作
Handler mHandler = new android.os.Handler() {
@Override
public void handleMessage(Message msg) {
task.cancel(true);
}
};
Message msg = new Message();
msg.arg1 = 0;
mHandler.sendMessageDelayed(msg, 1000);
这是我的asynctask start
final findIpTask task = new findIpTask(1, 2);
task.execute();
在我的asynctask我有
protected void onCancelled() {
running = false;
dialog.dismiss();
//some alert dialog for time-out
<2.>在2.33模拟器中它工作正常。但是当我在4.0模拟器上运行我的应用程序时它不会停止。任何人都知道为什么并有解决方案。
答案 0 :(得分:0)
由于没有停止或处理程序线程,您的AsyncTask不会停止。
您可以停止线程和asyncTask,而不是使用处理程序 TIMER线程。如下面的代码段所示。
Timer myTimer = new Timer();
myTimer.schedule(new TimerTask() {
@Override
public void run() {
//Your Stuffs
}
}, 0, 1000); // put your delay here
if(ButtonStopped == true){
myTimer .cancel();
myTimer .purge();
//your stuffs
task.cancle();// call here for stopping your asyncTask
}else{
//your stuffs
}
for more info go to this android developer link.
希望这会帮助你。