2017-03-02 15 views
-1

クラス内にある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); 

場所は、null値を示しています。

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からアクセスする場合には、null値を示しています。あなたはexecute();

メソッドを呼び出すときに、すぐに制御メインスレッドで同時に

+1

に場所のためのあなたのコードを入れてどのようにmulithreading作品...](http://ideone.com/PPHi95)私は毎回同じような質問にペニーがあった場合.. 。 – Selvin

答えて

0

AsyncTaskランは次の行に行く:

String location = retrieve.sales_location; 

はそれだ[onPostExecute(Result result)方法

onPostExecute(Result result){ 
    String location = retrieve.sales_location; 
    System.out.println("Location is: " + location); 
} 
関連する問題