Код: Выделить всё
public interface Callback{ // интерфейс обратной связи
void doCallback(String i);
}
////////////////////////////////////
public class Worker{ // класс в котором будет выполнятся процедура обработки данных с неизвестным временем выполнения
Callback callbackVar;
String workString;
public void myMethod(String str){
this.callbackVar.doCallback(str);
}
public void toDo{ // это та самая процедура
this.workString = "here is new data";
this.myMethod(workString);
}
}
//////////////////////////////////////
public class MyClass{ // основной класс в котором вы работаете
Worker worker = new Worker();
String sendData, receivedData; // ну тут все ясно
public void toSend(String str){ // процедура, которая засылает данные на длительную обработку в класс Worker
//code here to send some data somewhere
}
public void myTask(){ // наша основная процедура
this.sendData = "data to send";
this.toSend(sendData); // посылаем данные..
this.worker.myMethod = new Callback(){ // эта штука сработает после того, как сработает "та самая процедура" в классе Worker
@Override
doCallback(final String dataCallback){
this.receivedData = dataCallback; // => receivedData = "here is new data"
}
}
}
}