0

目前,下面的代码给出了编译错误,因为监听器不知道什么是 smsTask。我需要监听器中的 smsTask 实例。是否可以在将其传递给 contruntor 的情况下执行此操作?如果我这样做似乎是多余的:

.createTask(smsTask,new TaskCompleteListener(smsTask){...}

当前代码:

public void doStuff(){      
         SmartPhoneTask smsTask=createSmsTask();
         super.getSystem().createTask(smsTask,new TaskCompleteListener(){

            @Override
            public void onTaskComplete() {
                releaseResources(smsTask);//error.

            }});

    }

    private SmartPhoneTask createSmsTask() {
        return new SmartPhoneTask();
    }

创建任务:

void createTask(SmartPhoneTask task, TaskCompleteListener listener);
4

2 回答 2

3

您可以声明变量final

 final SmartPhoneTask smsTask=createSmsTask();
于 2013-06-20T17:38:29.363 回答
0

如果TaskCompleteListener在您的控制之下,您可以向该方法添加一个Task参数onTaskComplete()

public void onTaskComplete(Task task) {
  releaseResources(task);
}

现在System必须在调用方法时将相应的任务传递给侦听onTaskComplete()器。

通过这种方式,您还可以将相同的内容添加TaskListener到多个任务中。

于 2013-06-20T17:42:28.267 回答