Я хотел бы сделать что-то простое, но я не могу выразить это в поиске Google. Итак, я пришел сюда ^^Функция обратного вызова Java как параметр
У меня есть Async задача так:
class RequestTask extends AsyncTask<String, String, String> {
final MyCallbackInterface callback;
RequestTask(MyCallbackInterface callback) {
this.callback = callback;
}
@Override
protected String doInBackground(String... uri) {
...
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
callback.onTaskFinished(result);
}
}
interface MyCallbackInterface {
void onTaskFinished(String result);
}
Итак, у меня есть задача с обратным вызовом для выполнения при завершении задачи.
Теперь я могу назвать это так:
class Program {
public void DoAsyncRequest(String stringUrl, MyCallbackInterface callback) {
new RequestTask(callback).execute(stringUrl);
}
public static void Main(){
DoAsyncRequest("http://toto.com", new MyCallbackInterface() {
@Override
public void onDownloadFinished(String result) {
//do something ...
}
});
}
}
Но, вместо того, чтобы функция «встроенной» в качестве обратного вызова, можно сделать что-то вроде этого: (если да, то как?)
class Program {
public void DoAsyncRequest(String stringUrl, MyCallbackInterface callback) {
new RequestTask(callback).execute(stringUrl);
}
public static void Main(){
DoAsyncRequest("http://toto.com", MyCallBack);
}
private void MyCallBack(string result){
//do something
}
}
Спасибо!