如何知道asynctask何时完成

时间:2014-02-08 17:05:50

标签: java android

public class Calculate extends AsyncTask<Void, Integer, Integer> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected Integer doInBackground(Void... arg0) {
        int a = 1;
                int b = 2

        return a+b;
    }

    @Override
    protected void onPostExecute(Integer result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);

    }

}

我的应用程序使用asynctask类(如下所示),以及一个调用此类的函数, 我的问题是如何知道这个课程何时完成?每次我检查,它总是在运行!

2 个答案:

答案 0 :(得分:1)

onPostExecute(...)方法中,您只需在调用者Activity中调用一个方法,该方法会将布尔值terminated_activity设置为true。您可以通过多种方式执行此操作,最简单的方法是将IntentsHandler或本地BroadcastReceiver结合使用。

  • 关于HandlerIntent的示例在我今天在其他问题here中发布的答案中。
  • 对本地BroadcastReceiver的一个很好的解释是here

答案 1 :(得分:0)

  

onPostExecute(Result),在后台计算完成后在UI线程上调用。后台计算的结果作为参数传递给此步骤。

直接来自docs