2016-08-10 25 views
0

我通过php在Android中获取104个变量从MySQL并尝试显示在列表视图,但它需要将近1-2分钟来加载值如何加快数据提取。android数据提取是非常缓慢的从在线web服务器

我正在使用json获取数据,任何其他库的快速获取。

请用完整的例子来解释。

+0

这些有点问题你会得到很多赞成票。你做了什么检查?你有没有试过在浏览器中看到这个JSON加载?花了多少时间?你有没有使用Jmeter来查看响应时间? –

+1

我不知道关于Jmeter,JSON加载时间我是一个完整的初学者,并要求我的怀疑不应该投我我 – rakesh1999

+0

感谢Jmeter它需要125ms共204变量我提取 – rakesh1999

回答

1

尝试Android的异步HTTP客户端库

特点

  • 利用上游的HttpClient 4.3.6版本,而不是Android的前提DefaultHttpClient
  • 兼容Android的API 23和更高
  • 进行异步HTTP请求,处理匿名回调中的响应 HTTP请求发生在UI线程之外
  • 个请求使用一个线程池封顶并发资源使用 GET/POST PARAMS助洗剂(RequestParams),没有附加的第三方库
  • 分段文件上传
  • 串流JSON上传没有额外的库
  • 处理圆和相对重定向
  • 小规模开销您的应用程序,仅适用于一切90KB
  • 智能自动请求重试了参差不齐的移动连接优化的超FAS
  • 自动的gzip响应解码支持牛逼请求与BinaryHttpResponseHandler
  • 二进制协议通信
  • 内置响应解析成JSON与JsonHttpResponseHandler直接
  • 保存响应转换成文件,FileAsyncHttpResponseHandler
  • 持久cookie存储,保存的cookies到您应用的SharedPreferences
  • 集成Jackson JSON,Gson或其他JSON(de)序列化库与BaseJsonHttpResponseHandler
  • 支持SAX解析器和SaxAsyncHttpResponseHandler
  • 支持的语言和内容编码,不只是UTF-8

欲了解更多详情,请访问以下链接:

http://loopj.com/android-async-http/

下面是使用它的一个例子:

pdialog.setMessage("Veuillez patienter!"); 
       pdialog.show(); 
       RequestParams params = new RequestParams(); 

       params.put("user_login", username); 



       AsyncHttpClient client = new AsyncHttpClient(); 
       client.post("http://yourUrl.com", params, new AsyncHttpResponseHandler() { 
        @Override 
        public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 
         loading = true; 

         AdapterPrincipal adapterPrincipal; 
         String s = ""; 
         try { 

          s = new String(responseBody, "UTF-8"); 
          Log.d("Error", s.toString()); 
          JSONObject arrg = new JSONObject(s); 
          JSONArray query = arrg.getJSONArray("query"); 
          Log.i("result from query ", "" + query); 
          for (int i = 0; i < query.length(); i++) { 
           try { 

            pdialog.dismiss(); 
            JSONObject object = query.getJSONObject(i); 

            String dateinsertannonce = object.getString("date_insert_annonce"); 
            Log.i("date", dateinsertannonce); 
            String datevente = object.getString("vendu"); 
            String marque = object.getString("marque"); 
            String Clomn_Model = object.getString("model"); 
            String Clomn_Prix = object.getString("prix"); 
            String Clomn_Kilometrage = object.getString("kilometrage"); 
            String Clomn_BoiteVitesse = object.getString("boite_vitesse"); 
            String Clomn_Energie = object.getString("energie"); 
            String Clomn_Source = object.getString("source"); 
            String Clomn_Url = object.getString("url"); 
            String Clomn_PHOTO = object.getString("images_noms"); 
            String Maj = object.getString("derniere_maj"); 
            int id = object.getInt("id"); 



            voitureList = databaseHelper.getAllVoiture(username, currentLength); 


            listView.setAdapter(new AdapterLogin(getActivity(), voitureList, username, currentLength)); 


           } catch (JSONException e) { 
            e.printStackTrace(); 
           } 
          } 
         } catch (UnsupportedEncodingException e) { 
          e.printStackTrace(); 
         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
        } 

        @Override 
        public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 

        } 
       }); 

      } 
     }); 

    }