我如何使用像回调函数一样的AsyncTask

时间:2011-10-07 14:54:15

标签: android android-asynctask handler

我的情况如下所示,我找不到任何解决方案。

我将从web方法中获取结果值并将其设置为参数,然后在使用它进行一些操作后,我将其发送到另一个webmethod,它将被另一个方法使用,等等。这是我想要做的:

x = webMethodA();
y = webMethodB(x+3);
if(y){
z=10;
} else {
z=1000;
t = webMethodC(z);

我在调用webmethods时使用AsyncTask,因为honey不支持在UI线程上调用webservices。我正在通过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.

1 个答案:

答案 0 :(得分:0)

如果您想在线程之间发送消息/数据/捆绑包,请查看MessageHandler类。

您的'worker'线程将创建一条消息,以包含将发送到您的UI线程的结果。

创建处理程序时,请确保在UI线程中创建它。