2017-03-02 166 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); 
}