все же я вижу, что есть наиболее предпочтительный способ, который был тем, что я искал ... он в основном получен из этих ответов, но мне пришлось манипулировать им, чтобы сделать его более более избыточным и эффективным. я придумаю
В точку ::
сначала создайте интерфейс так просто
public interface myCallback {
void onSuccess();
void onError(String err);
}
теперь, чтобы запускать этот обратный вызов, когда вам захочется обработать результаты - более вероятно после асинхронного вызова, и вы захотите запустить некоторые вещи, которые зависят от этих повторных вызовов
// import the Interface class here
public class App {
public static void main(String[] args) {
// call your method
doSomething("list your Params", new myCallback(){
@Override
public void onSuccess() {
// no errors
System.out.println("Done");
}
@Override
public void onError(String err) {
// error happen
System.out.println(err);
}
});
}
private void doSomething(String param, // some params..
myCallback callback) {
// now call onSuccess whenever you want if results are ready
if(results_success)
callback.onSuccess();
else
callback.onError(someError);
}
}
doSomething
- это функция, которая требует некоторого времени, когда вы хотите добавить к нему обратный вызов, чтобы уведомить вас о результатах, добавить интерфейс обратного вызова в качестве параметра к этому методу
надеюсь, моя точка зрения ясна, наслаждайтесь;)