Volleyフレームワークの学習まとめ(1)
6115 ワード
1 Volleyの主な機能:ネットワーク要求データ非同期ダウンロード; ネットワーク要求の優先度処理 要求データのキャッシュ処理; マルチレベルキャンセル要求 とActivityとライフサイクルの連動(Activityの終了時にすべてのネットワークリクエストを同時にキャンセル)
1.要求キューの作成:RequestQueue mQueue=Volley.newRequestQueue(this);
2.要求先:ImageRequest imageRequest=new ImageRequest()
3.要求キューに要求オブジェクトを追加する:mQueue.add(imageRequest);
4.キャンセル要求:mQueue.cancelAll(this);
コードは次のとおりです.
実行結果:「weatherinfo」:{「city」:」「北京」,「cityid」:「101010100」,「temp 1」:「15°C」,「temp 2」:「5°C」,「weather」:「多雲」,「img 1」:「d 1.gif」,「img 2」:「n 1.gif」,「ptime」:「08:00」}}
手順:
1.要求キューの作成:RequestQueue mQueue=Volley.newRequestQueue(this);
2.要求先:ImageRequest imageRequest=new ImageRequest()
3.要求キューに要求オブジェクトを追加する:mQueue.add(imageRequest);
4.キャンセル要求:mQueue.cancelAll(this);
コードは次のとおりです.
package com.example.kaiwei.vollydemo1;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;
import android.widget.TextView;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.ImageRequest;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
public class MainActivity extends Activity {
// ;
private RequestQueue mQueue;
private TextView textview;
private ImageView imageview;
private final String url_weather = "http://www.weather.com.cn/adat/cityinfo/101010100.html";
private final String url_image = "http://i.tq121.com.cn/i/wap/logo.png";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textview = (TextView) findViewById(R.id.textview);
imageview = (ImageView) findViewById(R.id.imageview);
mQueue = Volley.newRequestQueue(this);
loadJson();
loadImageView();
}
private void loadImageView() {
// ;
ImageRequest imageRequest = new ImageRequest(
url_image,
new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap response) {
imageview.setImageBitmap(response);
}
}, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
imageview.setImageResource(R.drawable.ic_launcher);
}
});
// ;
mQueue.add(imageRequest);
}
private void loadJson() {
// TODO Auto-generated method stub
//json ;
StringRequest stringRequest = new StringRequest(url_weather,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("response", response);
textview.setText(response);
System.out.println("response" + response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("response", error.getMessage(), error);
}
});
// ;
mQueue.add(stringRequest);
}
@Override
protected void onStop() {
super.onStop();
//
mQueue.cancelAll(this);
}
}
実行結果:「weatherinfo」:{「city」:」「北京」,「cityid」:「101010100」,「temp 1」:「15°C」,「temp 2」:「5°C」,「weather」:「多雲」,「img 1」:「d 1.gif」,「img 2」:「n 1.gif」,「ptime」:「08:00」}}