Когда вы объявляете интерфейс со следующим кодом:
public class MyASyncClass extends AsyncTask<String, String, String> {
public interface AsyncResponse {
void processFinish(String output);
}
...
}
, модификатор доступа из void processFinish(String output)
неявно назначается public
.Итак, что вы действительно получаете:
public class MyASyncClass extends AsyncTask<String, String, String> {
public interface AsyncResponse {
public void processFinish(String output);
}
...
}
Когда вы создаете объект из интерфейса, вам необходимо переопределить как метод, так и модификатор доступа.Примерно так:
MyASyncClass.AsyncResponse response = new MyASyncClass.AsyncResponse() {
@Override
public void processFinish(String output) {
// do something with the output.
}
};