0

我正在取消AsyncTask父活动暂停时(onPaused)。我观察到的是任务已终止,但onCancelled从未调用过参数化版本。但是,如果我用无参数方法替换它onCancelled,它总是会按预期调用。

我的代码:

    //In the activity
    @Override
    protected void onPause() {
       super.onPause();

       System.out.println("ON PAUSE!");

       if(lastTask != null){
           lastTask.cancel(true);
       }
    }


    //In asynctask implementation

    @Override
    protected Result doInBackground(Params... params) {
        for(int i = 0;!isCancelled();i++){
            System.out.printf(">>>>>>>>>>>>>> Doing some work. Iteration %d%n", i);
            SystemClock.sleep(1000);
        }
    }

    @Override
    protected void onCancelled(Result result){
        System.out.println("ON CANCELLED (args)!");
    }

我在 android 2.2 AVD 中进行测试。


更新
根据文档,此方法是在 API 级别 11 中添加的。我正在 API lv8 虚拟设备中进行测试,但正在为 lv16 编译。所以这个方法在设备操作系统中不存在。我可能会期待一个例外。

4

2 回答 2

3

在 API 级别 3 中引入了protected void onCancelled () 。

其中,在 API 级别 11 即 Android 3.0 上引入了protected void onCancelled(结果结果) 。

于 2012-09-28T09:46:42.270 回答
1

是在 API 级别 11 中引入的onCancelled(Result result),即 Android 3.0。

于 2012-09-28T09:44:14.923 回答