HappyTomatoes 2016-04-22 11:33 采纳率: 0%
浏览 1227

安卓中的问题,求教各位大神

安卓中 This Handler class should be static or leaks might occur
大家有什么好的解决方法吗

小白一枚,求教各位大神

如下buddle附近总是提示This Handler class should be static or leaks might occur

    button1 = (Button) findViewById(R.id.car_sub);

    button1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            progressDialog1 = ProgressDialog.show(MycarActivity.this, "",
                    "服务器连接中...", true, false);
            //  开启线程去查密码
            new Thread() {

                @Override
                public void run() {

                    // 向handler发消息
                    handler2.sendEmptyMessage(0);
                }
            }.start();
        }
    });             

   } 


private Handler handler2 = new Handler() {

    @SuppressLint("HandlerLeak")
    @Override
    public void handleMessage(Message msg) {
        // 查询操作

        register();

    }
};

private void register() {
    //获取传过来的用户名

    Bundle Bundle1 = this.getIntent().getExtras();
    String  loginName= Bundle1.getString("LoginName");
    //获取下拉菜单的值
    String style = mStyle.getSelectedItem().toString(); 
    String brand = mBrand.getSelectedItem().toString();
    String plateNumber = mPlateNumber.getSelectedItem().toString();
    String color = mColor.getSelectedItem().toString();
      EditText t1=(EditText)findViewById(R.id.et_mPlateNumber);
      String value = t1.getText().toString();       



    //  打开网络连接

    HttpClient client = new DefaultHttpClient();
    StringBuilder builder = new StringBuilder();

    // 服务器提交地址
    HttpGet myget = new HttpGet(ServerUrl
            + "OwnCar.ashx?type=addcar&LoginName=" + loginName
            +  "&PlateNumber=" + plateNumber + value
            +  "&GasOline=" + "93" 
            +  "&Brand=" + brand
            +  "&Style=" + style
            +  "&Color=" + color
            +  "&OilMass=" + "1L"
            +  "&Mileage=" + "1500"
            +  "&CarBreakDown=" + "yes" );
    try {

        HttpResponse response = client.execute(myget);
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                response.getEntity().getContent()));
        //  填充数据流
        for (String s = reader.readLine(); s != null; s = reader.readLine()) {
            builder.append(s);
        }
        // 读取json返回数组
        JSONObject jsonObject = new JSONObject(builder.toString());
        String re_result = jsonObject.getString("Result");

        if (re_result.equals("1")) {

            Toast.makeText(MycarActivity.this, "添加汽车信息成功", Toast.LENGTH_SHORT)
                    .show();

        } else {
            if (re_result.equals("0")) {

                Toast.makeText(MycarActivity.this, "已存在该汽车", Toast.LENGTH_SHORT)
                        .show();

            }else{
            Toast.makeText(MycarActivity.this, "添加汽车信息失败", Toast.LENGTH_SHORT)
                    .show();
            }
        }

        progressDialog1.dismiss();

    } catch (Exception e) {
        Log.v("url返回", "false");
        e.printStackTrace();
        Toast.makeText(MycarActivity.this, "服务器数据注册失败", Toast.LENGTH_SHORT)
                .show();
        progressDialog1.dismiss();
    }
}
  • 写回答

3条回答

  • 斩月sama 博客专家认证 2016-04-22 11:42
    关注

    这个意思是你这个Handler类最好是声明为static的要不然可能会产生内存泄漏,解决的办法是在你这个Handler类前面加一个static参数,看会不会报错了
    也就是public static class XXXX

    评论

报告相同问题?

悬赏问题

  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码