当前位置: 代码迷 >> Android >> 将网络访问放到另一个线程之后还是出现android.os.NetworkOnMainThreadException错误
  详细解决方案

将网络访问放到另一个线程之后还是出现android.os.NetworkOnMainThreadException错误

热度:25   发布时间:2016-04-28 04:16:09.0
将网络访问放到另一个线程之后还是出现android.os.NetworkOnMainThreadException异常
   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       // requestWindowFeature(Window.FEATURE_NO_TITLE);   
        setContentView(R.layout.activity_main);
        setActionBarLayout( R.layout.nav_title );

     new Thread(downloadRun).run();  // Create a connect.  
    }
Runnable downloadRun = new Runnable(){  

   @Override  
    public void run() {  
       // TODO Auto-generated method stub  
   String url = "http://www.ccc.com/phone/data.php";
    getPDAServerData(url);
   }  
      };  

    
     private void getPDAServerData(String url) {  
         HttpClient client = new DefaultHttpClient();  
         //提拱默认的HttpClient实现  
         HttpPost request;  
         try {  
             request = new HttpPost(new URI(url));  
             HttpResponse response = client.execute(request);  
             // 判断请求是否成功  
             if (response.getStatusLine().getStatusCode() == 200) { //200表示请求成功  
                 HttpEntity entity = response.getEntity();  
                 if (entity != null) {  
                     String out = EntityUtils.toString(entity, "UTF-8");  
                     Log.i(TAG, out);
                     
                     JSONArray jsonArray = new JSONArray(out);
                     
                     videos = new ArrayList<HashMap<String, Object>>();
                     for(int i = 0; i<jsonArray.length(); i++) {
                      JSONObject jsonObject = (JSONObject) jsonArray.get(i);
                      int id = jsonObject.getInt("id");
                      String name = jsonObject.getString("name");
                      String timelength = jsonObject.getString("Fbirthday");
                      String nongli = jsonObject.getString("nongli");
                      String haiyou = jsonObject.getString("haiyou");
                     
                      video = new HashMap<String, Object>();
                   if(nongli.trim().equals("农历"))
                   {
                   video.put("ItemImage", R.drawable.lunar_icon);//图像资源的ID
                   }
                   else
  相关解决方案