Я нахожусь в случае, который можно увидеть ниже, что я не смог найти решение.Как использовать AsyncTask как callbackfunction
Я собираюсь принять значение результата из веб-метода и установить его в параметр, после чего после некоторой операции с ним я отправлю его другому веб-методу, и он будет использоваться другим методом и т. Д. Вот что я хочу сделать :
x = webMethodA();
y = webMethodB(x+3);
if(y){
z=10;
} else {
z=1000;
t = webMethodC(z);
Я использую AsyncTask при вызове WebMethods, потому что соты не поддерживает для вызова веб-сервисы на UI потоке. Я получаю значение результата onPostExecute, но не могу отправить метод вызывающего.
Как решить эту проблему?
setMethodName("GetTarih");
KeyValuePair[] parameters = new KeyValuePair[2];
parameters[0] = new KeyValuePair("Rep", "TEST001");
parameters[1] = new KeyValuePair("Tarih", String.valueOf(Util.getOADateByToday()));
CallSoap soap = new CallSoap(uri, soapAction, parameters);
soap.setDataDownloadListener(new CallSoap.DataDownloadListener() {
public void dataDownloadedSuccessfully(String data) {
Log.e("aaaa",data);
tarih = data;
}
public void dataDownloadFailed() {
// TODO Auto-generated method stub
}
});
soap.execute("");
//I want to continue from this line with parameter named tarih.
Что вы подразумеваете под термином "can not send to caller method back."? – Caner
То, что я хочу сделать, очень просто. Я буду асинхронно вызывать веб-метод, и после получения результата я снова вызову еще один веб-метод асинхронно. и это продолжается. Проблема в том, что да, я могу получить результат из webmethod, но я не могу установить значение результата для параметра в блоке потока пользовательского интерфейса. Основные коды запускаются в пользовательском интерфейсе, и только потоки веб-меток выполняются по фоновым потокам. Мне нужно поймать значение результата и передать его параметру, который определяется в блоке пользовательского интерфейса. –
Хорошо, как сказал керубу, проверьте класс 'Handler' – Caner