我目前正在尝试在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
}
我做了很多研究,我找到了解决方案,但它们似乎与我发现的那些例子非常不同和习惯。即使我已经和他们玩弄了很长时间,我似乎无法让他们中的任何一个工作。
谢谢。 : - )
答案 0 :(得分:0)
Invalid use of SingleClientConnManager occurs in Android 2.2,2.3 but not in 4.1
您可能希望查看上面提到的线程安全问题。我想你需要知道你的API版本是否在'async-task'中默认为单线程。