可以在android中自动停止任务吗?

时间:2015-10-22 07:48:50

标签: android android-asynctask

我有一个Asynctask在后​​台做了一些工作,我就这样定义了。

MyAsynctask myAsynctask;

然后在我的按钮点击事件中,我做了类似这样的事情:

public void onClick(Event event){
    mAsynctask = new MyAsynctask(context);
    mAsynctask.execute();
}

当我运行代码时,我在后台执行的工作似乎总是运行良好。但是,如果我在第一次AsyncTask未完成时第二次按下按钮,我恐怕会同时运行两个AsyncTask

这可能是一个问题吗?

2 个答案:

答案 0 :(得分:1)

您可以按如下方式检查任务的状态:

int taskStatus = myAsynctask.getStatus();

状态可以是以下任何一种:

AsyncTask.Status.PENDING

AsyncTask.Status.RUNNING

AsyncTask.Status.FINISHED

所以你可以这样做:

if(taskStatus == AsyncTaskStatus.RUNNING){
 //task is still running
}

答案 1 :(得分:0)

您可以在yourButton.setEnabled(false);中使用onClickListener,并在onPostExecute的{​​{1}}中完成任务后再次启用按钮。像这样的东西:

AsynchTasck

然后在你的boolean myFlag = true; public void onClick(Event event){ //yourBusston.setEnabled(false); if (myFlag){ myFlage = false; mAsynctask = new MyAsynctask(context); mAsynctask.execute(); } } 做类似的事情:

AsynchTask

您也可以通过以下代码行取消任务:

@Override
    protected void onPostExecute(Void void) {
      //after you ensure that your task was successful 
      // yourButton.yourButton.setEnabled(true);
       myFlag = true;           
}