使用SingleClientConnManager的Android出错

时间:2012-11-30 21:59:35

标签: java php android sql android-asynctask

我目前正在尝试在Android中学习一些关于AsyncTask的知识。我正在使用我正在使用的一些学校项目的代码片段,但我似乎无法正常运行它。我得到的错误如下:

“SingleClientConnManager的使用无效:仍然分配了连接。 确保在分配另一个连接之前释放连接。“

基本上我理解它说的是什么我需要在启动另一个之前关闭http连接。 (纠正我,如果我错了大声笑)所以我想知道是否有人可以请我帮助我,因为我已经被困了几个小时。

我使用的代码如下:

protected class loader extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {
        // TODO Auto-generated method stub

        try {
            httpclient = new DefaultHttpClient();
            httppost = new HttpPost("url_of_my_phpdocument_here.php");
            //legg til data
            nameValuePairs = new ArrayList<NameValuePair>(1);

            nameValuePairs.add(new BasicNameValuePair("username",username.getText().toString().trim()));
            nameValuePairs.add(new BasicNameValuePair("password",password.getText().toString().trim()));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            response=httpclient.execute(httppost);

            ResponseHandler<String> responseHandler = new BasicResponseHandler();
            final String response = httpclient.execute(httppost, responseHandler);

            //Toast.makeText(MainActivity.this,response, Toast.LENGTH_LONG).show();

            //tv.setText(""+response);
            if(response.equalsIgnoreCase("User Found"))
            {
                startActivity(new Intent("com.example.obligatorisk.BROWSER"));
            }
        }
        catch(Exception e){
            e.printStackTrace();
        }

        return null;
    }
    // TODO Auto-generated method stub

}

我做了很多研究,我找到了解决方案,但它们似乎与我发现的那些例子非常不同和习惯。即使我已经和他们玩弄了很长时间,我似乎无法让他们中的任何一个工作。

谢谢。 : - )

1 个答案:

答案 0 :(得分:0)

Invalid use of SingleClientConnManager occurs in Android 2.2,2.3 but not in 4.1

您可能希望查看上面提到的线程安全问题。我想你需要知道你的API版本是否在'async-task'中默认为单线程。