android 获取http 返回的json体为什么10秒后才有相应

SF不会玩 发布于 2015/05/13 16:36
阅读 524
收藏 0


获取的result


public String executeGet() {


        String result = null;
        BufferedReader reader = null;
        JSONArray json =null;
        try {
            HttpClient client = new DefaultHttpClient();
            HttpGet request = new HttpGet();
           
            request.setURI(new URI(USER_DATA));
            
            
            HttpResponse response = client.execute(request);
            
            
            reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
 
            StringBuffer strBuffer = new StringBuffer("");
            String line = null;
            while ((line = reader.readLine()) != null) {
                strBuffer.append(line);
            }
            result = strBuffer.toString();
            
            
            




        } catch (Exception e) {
        Log.e("error!!!!!!!!", e.toString());
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                    reader = null;
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
       
        return result;
    }


----------------------------------------------------------------


activity中好像2.3版本以上就不能直接在oncreate中直接使用网络请求了


protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userid = (EditText) findViewById(R.id.useridtext);
code = (EditText) findViewById(R.id.codetext);
username = (EditText) findViewById(R.id.usernametext);
userpassword = (EditText) findViewById(R.id.userpasswordtext);
usergroupid = (EditText) findViewById(R.id.usergroupidtext);
Handler handler = new Handler();




myHandler = new MyHandler();




MyThread m = new MyThread();
         new Thread(m).start();




}



 class MyHandler extends Handler {
        public MyHandler() {
        }
 
        public MyHandler(Looper L) {
            super(L);
        }
 
        // 子类必须重写此方法,接受数据
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            // 此处可以更新UI
            Bundle b = msg.getData();
            JSONObject json;

try {


json = new JSONObject(b.getString("user"));

userid.setText(json.getString("userid"));


} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
         
            
            
            
        }
    }
 
   class MyThread implements Runnable {
        public void run() {
 
            try {
                Thread.sleep(10000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
 
            Log.d("thread.......", "mThread........");
            Message msg = new Message();
            Bundle b = new Bundle();// 存放数据
           
            try {
            JSONArray jsonarray = new JSONArray(new DataUrl().executeGet());
            b.putString("user",jsonarray.getString(0));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
            msg.setData(b);
 
            MainActivity.this.myHandler.sendMessage(msg); // 向Handler发送消息,更新UI
 
        }
    }
获取数据没问题,可是为什么每次都这么慢要等10秒才能接到
加载中
0
归园田居
归园田居
Thread.sleep(10000) 
0
寒天
寒天
休眠了10秒。。。。
0
雪花飘逸
雪花飘逸

.。。。。。


0
kingsOSZT
kingsOSZT
我个人觉得你这辈子都不会玩SF了,不只是SF,求远离dota.程序狗加完班睡前打个dota不容易,再被坑的话就真睡不着了..
0
yaly
yaly
class MyThread implements Runnable {
        public void run() {
 
            try {
                //TODO this
                Thread.sleep(10000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }



0
0
玉米不是玉米
不够细心也是罪
0
carlos
carlos
 try {
                Thread.sleep(10000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
返回顶部
顶部