无法从其他类

时间:2017-03-02 11:19:11

标签: java android android-asynctask

我有一个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访问它时,它显示空值。

1 个答案:

答案 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);
}