2

AsyncTask の onPostExecute() が呼び出されないようにすることを目指しています。cancel() は 100% のケースでは機能しないため、役に立ちません。cancel() が false を返し、後でタスクの onPostExecute() が呼び出されることがあります。これを防ぐ方法は?クラスでブール値フラグを作成し、cancel() を呼び出す代わりに true に設定しましたが、これはほとんど良い解決策ではありません。

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