2

我的目标是避免调用 AsyncTask 的 onPostExecute()。cancel() 帮不了我,因为它在 100% 的情况下都不起作用:有时 cancel() 返回 false,然后调用任务的 onPostExecute()。如何防止这种情况?我在我的类中创建了布尔标志并将其设置为 true 而不是调用 cancel(),但这并不是一个好的解决方案:

public class GetIcons extends AsyncTask<Void, Void, HashMap<String, Bitmap>>
{
  public boolean skipPostExecute = false;

  @Override
  protected HashMap<String, Bitmap> doInBackground(Void... arg0)
  {
    // do something (getting icons from webserver)
  }

  @Override
  protected void onPostExecute(HashMap<String, Bitmap> result)
  {
    super.onPostExecute(result);
    if (!skipPostExecute)
    {
       // do something
    }
  }

}

有没有更好的方法来做同样的事情?

4

0 回答 0