使用thread,handler来联网读取json串
package com.bwoie.test;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import com.bwoie.test.adapter.GroupAdapter;
import com.bwoie.test.bean.GroupBean;
import com.bwoie.test.bean.GroupData;
import com.google.gson.Gson;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.Window;
import android.widget.ListView;
public class MainActivity extends Activity {
private ListView lv;
private ArrayList<GroupData> list;
@SuppressLint("HandlerLeak")
Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
GroupAdapter adapter=new GroupAdapter(list, getApplicationContext());
lv.setAdapter(adapter);
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv_q);
init("http://121.42.8.95:8090/AndroidServer/gp.json");
}
private void init(final String uri) {
new Thread(){
public void run() {
try {
URL url=new URL(uri);
HttpURLConnection huc=(HttpURLConnection) url.openConnection();
huc.setConnectTimeout(5000);
huc.setReadTimeout(5000);
if(huc.getResponseCode()==200){
InputStream is=huc.getInputStream();
byte[] buffer=new byte[1024];
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int len=-1;
while((len=is.read(buffer))!=-1){
bos.write(buffer, 0, len);
}
is.close();
String json=bos.toString("gbk");
Gson gson=new Gson();
GroupBean bean=gson.fromJson(json, GroupBean.class);
list=bean.data;
handler.sendEmptyMessage(1);
}
} catch (Exception e) {
e.printStackTrace();
}
};
}.start();
}
}
2秒之后跳转
new Handler().postDelayed(new Runnable() {
public void run() {
Intent intent=new Intent(OneActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
}, 2000);