Android 处理程序无法在更高的api中取消异步任务
在我的应用程序中,我使用异步任务进行操作。但我也使用处理程序在超时时取消我的任务 这是我的处理程序操作Android 处理程序无法在更高的api中取消异步任务,android,android-asynctask,handler,Android,Android Asynctask,Handler,在我的应用程序中,我使用异步任务进行操作。但我也使用处理程序在超时时取消我的任务 这是我的处理程序操作 Handler mHandler = new android.os.Handler() { @Override public void handleMessage(Message msg) { task.cancel(true); } }; Message msg = new Message();
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);
这是我的任务开始
final findIpTask task = new findIpTask(1, 2);
task.execute();
在我的任务中,我有
protected void onCancelled() {
running = false;
dialog.dismiss();
//some alert dialog for time-out
在2.33 emulator中,它工作正常。但当我在4.0 emulator上运行我的应用程序时,它不会停止。有人知道原因并有解决方案吗。您的异步任务不会因为没有停止或取消处理程序线程而停止 您可以停止线程和异步任务,而不是使用处理器usetimer thread,如下面的代码段所示
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
}
有关详细信息。以及如何设置超时持续时间?按钮是否停止?对不起,这是从哪里来的?另外,我是否要将task.execute放入run(){}?那个么我什么时候给我的定时器打电话。取消?在定时器之后我会把什么作为“我的东西”呢。purge@FatihKaplan--当您单击“停止”按钮时,或当和wr要停止调用timer.cancle,然后单击“清除”()。你想阻止的一切。这只是一个例子。按照你的结构去做。我想要一个暂停,比如10秒后我想要取消。