_rdu.UploadData();这个方法里面是不是有UI的操作?
Skipped 33 frames!  The application may be doing too much work on its main thread.应该是警告吧?

解决方案 »

  1.   

    没有UI操作 /**
     * 单号明细记录上传
     * @param listmix
     * @param    
     * @param messgae  返回信息
     * @return  boolean  true 成功   false 失败
     */
    public int UploadData()
    {
    int flat=-1;
    int _id=cos.GetMaxRdid();
    int _rdid=GetMaxId();
    List<RecordDetails> listmix =new ArrayList<RecordDetails>();
    listmix=cos.getAllRecordDetailsData();

    System.out.println("_id:--"+_id+"--_rdid:--"+_rdid);
    if(_rdid==-1)
    {
     return  flat=4;
    }

    if(_id<=_rdid)
    {
        return  flat=4;
    }
    String url =  LoginActivity.address+"/POS/upload/recorddetails.upload.php";  
            HttpPost httpRequest = new HttpPost(url); 
            
    List<NameValuePair> params;  
    for(int i=0;i<listmix.size();i++)
    {
    params = new ArrayList<NameValuePair>();  
    params.add(new BasicNameValuePair("type","2"));
    params.add(new BasicNameValuePair("rdid", String.valueOf( listmix.get(i).getRdid())));
    params.add(new BasicNameValuePair("orderno", listmix.get(i).getOrderno().trim()));
    params.add(new BasicNameValuePair("gname", listmix.get(i).getOrderno().trim()));
    params.add(new BasicNameValuePair("gcomponent", listmix.get(i).getGcomponent().trim()));
    params.add(new BasicNameValuePair("gprice", String.valueOf( listmix.get(i).getApprice())));
    params.add(new BasicNameValuePair("qty", String.valueOf( listmix.get(i).getQty())));
    params.add(new BasicNameValuePair("ppname", listmix.get(i).getGname().trim()));
    params.add(new BasicNameValuePair("apname", listmix.get(i).getApname().trim()));
    params.add(new BasicNameValuePair("apprice", String.valueOf( listmix.get(i).getApprice())));
    params.add(new BasicNameValuePair("subtotal", String.valueOf( listmix.get(i).getSubtotal())));
    params.add(new BasicNameValuePair("stype", String.valueOf( listmix.get(i).getType())));
    params.add(new BasicNameValuePair("discount", listmix.get(i).getDiscount().trim()));
    params.add(new BasicNameValuePair("totalheat", listmix.get(i).getTotalheat().trim()));

    System.out.println( listmix.get(i).getOrderno().trim());

    try {  
                HttpEntity httpEntity = new UrlEncodedFormEntity(params,"utf-8");  
                httpRequest.setEntity(httpEntity);  
                  
                HttpClient httpClient = new DefaultHttpClient();  
                HttpResponse httpResponse = httpClient.execute(httpRequest);  
                  
                if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){  
                    String result = EntityUtils.toString(httpResponse.getEntity());  
                   // tv.setText(result);  
                   // messgae=result;
                    System.out.println(result+"--result");
                    Log.i("RecordDetails","result = "+result);  
               
                }else{  
                   // tv.setText("request error");  
                 //messgae="request error";
                }  
            } catch (UnsupportedEncodingException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            } catch (ClientProtocolException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            } catch (IOException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  
    }
      flat=2;
    return flat;
    }
      

  2.   

    Skipped 33 frames
    如果程序不报错,就直接无视它
      

  3.   

    文件上传时要让你的app和服务器保持长连接,中间不能断开
      

  4.   

    代码是不是贴的有问题,如果按你的提示,就是UploadData();在主线程里面执行了。
    handler在Thread后面居然没报空指针。
      

  5.   

    是不是你GC太频繁了。
    不断的new BasicNameValuePair,然后系统回收了。
    次数为listmix.size()*14?