0

strReturnedAddress 大约需要。3 秒计算 - 但它可能快到半秒。此行触发计算

new GetCurrentCity().execute();

在那条线之后就是这条线

    if(!(strReturnedAddress == null)){
        test.setText(strReturnedAddress);

我希望在计算 strReturnedAddress 时执行 if 语句。

我怎样才能做到这一点?

4

2 回答 2

2

如果需要之后的执行结果doInBackGround(),可以将代码放入onPostExecute()onPostExecute将在主线程上运行,并将传递的返回值doInBackGround()传递给参数。

另一种方法是task.execute().get()等待结果。但这违背了Asyntask的目的。

于 2013-07-10T16:37:01.607 回答
0

您可以更改 GetCurrentCity().execute();为线程。如果是这样,您可以:

Thread blah= GetCurrentCity();
blah.run();
blah.join();
if(!(strReturnedAddress == null)){
    test.setText(strReturnedAddress);
}

但这会弄巧成拙(如评论所示)

于 2013-07-10T16:35:36.477 回答