2017-03-02 130 views
-1

我有一个类内的AsyncTask。外部类包含一个将在运行AsyncTask后更新的变量。但是,当我从MainActivity访问外部类的变量时,它显示空值。无法从另一个类获取值

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

[这是(http://ideone.com/PPHi95)如果每次有人问我类似的问题,我都会有一分钱。 。 – Selvin

回答

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