Android Studio2.2
目覚ましアプリを作っています。
BroadcastReceiverを継承したAlarmBroadcastReceiverというclassで、JsonObjectRequestを出して、天気情報を受け取ります。天気情報は受け取れるのですが、レスポンスを受け取る前にコードの一番下まで処理が進んでしまい、currentWeatherがnullのままToastが出されてしまうという状態です。onReceiveメソッドを処理してからコード一番下の処理を行わせるにはどうしたらよいのでしょうか。やりたいことがうまく表現できていないかもしれません。
java
1 2public class AlarmBroadcastReceiver extends BroadcastReceiver { 3 4 Context context; 5 String currentWeather; 6 7 @Override // データを受信した 8 public void onReceive(final Context context, Intent intent) { 9 this.context = context; 10 11 String id = "130010"; 12 String url = "http://weather.livedoor.com/forecast/webservice/json/v1?city=" + id; 13 14 JsonObjectRequest jsonObjRequest = new JsonObjectRequest( 15 Request.Method.GET, 16 url, 17 null, 18 new Response.Listener<JSONObject>() { 19 @Override 20 public void onResponse(JSONObject response) { 21 Toast.makeText(context, "onResponse", Toast.LENGTH_SHORT).show(); 22 try { 23 currentWeather = response.getJSONArray("forecasts") 24 .getJSONObject(0) 25 .getString("telop"); 26 27 28 } catch (JSONException e) { 29 e.printStackTrace(); 30 } 31 } 32 }, 33 new Response.ErrorListener() { 34 @Override 35 public void onErrorResponse(VolleyError error) { 36 Log.d("StopError", error.toString()); 37 } 38 } 39 ); 40 Log.d("Receiver", "リクエスト送信"); 41 SmartAlarmSingleton.getInstance(context).addToRequestQueue(jsonObjRequest); 42 43 44 Toast.makeText(context, currentWeather , Toast.LENGTH_SHORT).show(); 45 46 } 47}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。