我有一个AsyncTask,它在一个类中。外部类包含一个变量,该变量将在运行AsyncTask后更新。但是,当我从MainActivity访问外部类的变量时,它显示null值。
MainActivity类:
RetrieveJSON retrieve = new RetrieveJSON();
retrieve.new RetrieveWarehouseSalesJSON(MainActivity.this).execute();
String location = retrieve.sales_location;
System.out.println("Location is: " + location);
位置显示空值。
RetrieveJSON类(包含AsyncTask):
public class RetrieveJSON {
String sales_location;
class RetrieveWarehouseSalesJSON extends AsyncTask<Void, Void, Void>{
//....
sales_location = s.getString("title");
System.out.println("Sales_locatiion" + sales_location);
}
}
sales_location在此处显示正确的值,但是当我从MainActivity访问它时,它显示空值。
答案 0 :(得分:0)
AsyncTask
与主线程同时运行,因此当您致电execute();
方法立即控制进入下一行:
String location = retrieve.sales_location;
将您的代码放在onPostExecute(Result result)
方法
onPostExecute(Result result){
String location = retrieve.sales_location;
System.out.println("Location is: " + location);
}