缓存



package com.example.day10_loadmore;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.example.day10_loadmore.XListView.IXListViewListener;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.widget.ArrayAdapter;
/**
 * 1.
 * countPage = 总页数  10
 * page=0
 * page++;
 * 2.
 * 根据请求的时间,服务器判断,返回数据
 * 3.
 * 客户端不用操作,服务器自己判断
 * @author Administrator
 *
 */
public class MainActivity extends Activity implements IXListViewListener {
 String path = "http://ic.snssdk.com/2/article/v25/stream/?category=news_society&count=20&min_behot_time=1476067842&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1476067224&loc_mode=5&lac=4527&cid=28883&iid=5567581950&device_id=23365548172&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=SCH-I919U&os_api=19&os_version=4.4.2&uuid=352284041184817&openudid=1111111111110000";
 
 private String url_more="http://ic.snssdk.com/2/article/v25/stream/?count=20&max_behot_time=1478631485&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1478649183&loc_mode=5&loc_time=1478591360&latitude=39.91488833333334&longitude=116.40387666666666&city=%E5%8C%97%E4%BA%AC&lac=40965&cid=1388769&iid=6193744363&device_id=34616660226&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=GT-P5210&os_api=17&os_version=4.2.2&uuid=133524931445000&openudid=0055042903195103";
 private String url3 = "http://ic.snssdk.com/2/article/v25/stream/?category=news_hot&count=20&bd_city=%E5%8C%97%E4%BA%AC%E5%B8%82&bd_latitude=39.906906&bd_longitude=116.397251&bd_loc_time=1478131545&loc_mode=5&loc_time=1478036023&latitude=39.905498333333334&longitude=116.39099833333333&city=%E5%8C%97%E4%BA%AC&lac=4429&cid=19971&iid=6058067105&device_id=33397630772&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=Lenovo%20K30-TM&os_api=19&os_version=4.4.2&uuid=864394010176057&openudid=B00594EF7F290000";
 private String url="http://ic.snssdk.com/2/article/v25/stream/?count=20&max_behot_time=1478565951&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=";
 private String url2 = "&loc_mode=5&loc_time=1478525819&latitude=39.91488833333334&longitude=116.40387666666666&city=%E5%8C%97%E4%BA%AC&lac=40965&cid=1388769&iid=6193744363&device_id=34616660226&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=GT-P5210&os_api=17&os_version=4.2.2&uuid=133524931445000&openudid=0055042903195103";
 private ArrayList<String> list = new ArrayList<String>();
 private ArrayList<String> list_2 = new ArrayList<String>();
 private ArrayAdapter<String> adapter;
 public final int INIT=0;
 public final int REFRESH=1;
 public final int LOADMORE=2;
 private String tag = "MainActivity--->";
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        listView = (XListView) findViewById(R.id.listView);
        listView.setPullLoadEnable(true);
        listView.setXListViewListener(this);
        getDataFromNet(INIT);
       
    }

 private void getDataFromNet(final int i) {
  Log.d(tag, "开始--------------------");
  list.clear();
  long currentTimeMillis = System.currentTimeMillis();
  final String string = String.valueOf(currentTimeMillis).substring(0, 10);
  new Thread(){
   public void run() {
    try {
     URL  url1 = new URL(Url.getUrl());
     System.out.println(url+string+url2);
     HttpURLConnection conn = (HttpURLConnection) url1.openConnection();
//     conn.getDefaultUseCaches();
     conn.setDefaultUseCaches(false);//禁掉缓存
     conn.setUseCaches(false);
     conn.setConnectTimeout(3000);
     if (conn.getResponseCode()==200) {
      InputStream inputStream = conn.getInputStream();
      ByteArrayOutputStream so = new ByteArrayOutputStream();
      int len=0;
      byte[] buffer = new byte[1024];
      while((len = inputStream.read(buffer))!=-1){
       so.write(buffer, 0, len);
      }
      String json = so.toString();
      //解析
      JSONObject jsonObject = new JSONObject(json);
      JSONArray jsonArray = jsonObject.getJSONArray("data");
      for (int i = 0; i < jsonArray.length(); i++) {
       JSONObject jsonObject2 = jsonArray.getJSONObject(i);
       list.add(jsonObject2.getString("title"));
      }
      //
      mHandler.sendEmptyMessage(i);
     }
    } catch (Exception e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   };
  }.start();
  
  HttpUtils httpUtils = new HttpUtils(3000);
  httpUtils.configCurrentHttpCacheExpiry(0);//缓存时间
  httpUtils.configHttpCacheSize(0);
  httpUtils.send(HttpMethod.GET, path, new RequestCallBack<String>() {

   @Override
   public void onFailure(HttpException arg0, String arg1) {
    
   }

   @Override
   public void onSuccess(ResponseInfo<String> arg0) {
    Log.d(tag, arg0.result);
//    DefaultDir();
    //解析
    try {
     JSONObject jsonObject = new JSONObject(arg0.result);
     JSONArray jsonArray = jsonObject.getJSONArray("data");
     for (int i = 0; i < jsonArray.length(); i++) {
      JSONObject jsonObject2 = jsonArray.getJSONObject(i);
      list.add(jsonObject2.getString("title"));
     }
    } catch (JSONException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
    //
    mHandler.sendEmptyMessage(i);
   }
  });
 }
 
 //
 Handler mHandler = new Handler(){
  

  public void handleMessage(android.os.Message msg) {
   
   switch (msg.what) {
   case INIT:
    list_2.addAll(list);
    adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, list_2);
    listView.setAdapter(adapter);
    break;
   case REFRESH:
    adapter.notifyDataSetChanged();
    //縮回
    listView.stopRefresh();
    break;
   case LOADMORE:
    list_2.addAll(list);
    adapter.notifyDataSetChanged();
    listView.stopLoadMore();
    break;

   default:
    break;
   }
   
  };
 };
 private XListView listView;
 @Override
 public void onRefresh() {
  getDataFromNet(REFRESH);
 }

 @Override
 public void onLoadMore() {
  getDataFromNet(LOADMORE);
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值