【发布时间】:2014-06-22 20:21:17
【问题描述】:
我无法弄清楚为什么在从活动中调用 void “Send” 后变量“vysledek”保持不变。我可能不完全理解 AsyncTask 的工作方式。感谢您的帮助。
public class Tools{
public String vysledek;
public void Send() {
Poslat Poslat = new Poslat();
Poslat.execute();
}
private class Poslat extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
vysledek = "something I want it to be";
}
@Override
protected void onPostExecute(String result){
vysledek = "something I want it to be 2";
}
}
我希望名为“Send”的 Activity 已经拥有该变量。所以我想它必须等待它完成。我试着像这样等待:
while (Tools.vysledek.equals(""))
{ }
但这会导致崩溃。
【问题讨论】:
-
您要在哪里访问 vysledek?
-
在调用“Send()”的Activity中。
-
它会导致崩溃,因为 vysledek 在您的 AsyncTask 完成之前为空。查看@cadocx 答案以了解正确的方法
-
我是这样改的,但我需要 Activity 等待,我不知道怎么做..
-
最好将等号调用为 while ("".equals(Tools.vysledek)) 以避免空指针异常。
标签: java android class android-asynctask