0

現在、以下のコードではコンパイル エラーが発生します。これは、リスナーが smsTask を認識していないためです。リスナーに smsTask のインスタンスが必要です。契約者に渡さにこれを行うことは可能ですか? 私が行うと冗長に思えます:

.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();
    }

createTask:

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 に答える