【发布时间】:2015-01-09 12:29:20
【问题描述】:
我确实在我的项目中添加了异步库并且已经检查过了,我不知道为什么代码流没有进入异步任务
代码
public void doMysql()
{
Log.v("doMysql", "accessed");
new AsyncTask<Void, Void, String>() {
@Override
protected void onPreExecute() {
super.onPreExecute();
Log.e("AsyncTask", "onPreExecute");
}
@Override
protected String doInBackground(Void... params) {
Log.v("AsyncTask", "doInBackground");
String msg = "";
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://172.16.100.172:52273/mysql");
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("myday", Integer.toString(day_picker.getYear()) +
addZero(day_picker.getMonth() + 1) +
addZero(day_picker.getDayOfMonth())));
nameValuePairs.add(new BasicNameValuePair("mystar", changeStar(day_picker.getMonth() + 1, day_picker.getDayOfMonth())));
nameValuePairs.add(new BasicNameValuePair("mybt", changeBloodType(blood_picker.getValue())));
nameValuePairs.add(new BasicNameValuePair("mynum", "" + myPhone.getText()));
nameValuePairs.add(new BasicNameValuePair("yournum", "" + partnerPhone.getText()));
nameValuePairs.add(new BasicNameValuePair("myregID", regid));
try {
Log.v("setEntity", "before");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
Log.v("setEntity", "after");
} catch (UnsupportedEncodingException e1) {
Log.v("UnsupportedEncodingException", "");
e1.printStackTrace();
}
//172.16.101.28
try {
Log.v("post", "before");
HttpResponse httpresponse = httpclient.execute(httppost);
Log.v("post", "after");
Log.v("HttpResponse ",httpresponse.getEntity().toString());
} catch (ClientProtocolException e) {
Log.v("ClientProtocolException", "ClientProtocolException");
e.printStackTrace();
} catch (IOException e) {
Log.v("IOException", "IOException");
e.printStackTrace();
}
return msg;
}
@Override
protected void onPostExecute(String msg) {
Log.v("AsyncTask", "onPostExecute");
}
}.execute(null, null, null);
}
我在代码'Log.v("AsyncTask", "doInBackground");'中有一个日志语句
但它没有显示在记录器中'Log.v("AsyncTask", "doInBackground");'
【问题讨论】:
-
尝试 .execute() 而不是 .execute(null, null, null);
-
结果是一样的...为什么你认为这是一个解决方案?在本地,它与 '.execute(null,null,null)' 配合得很好
-
可能另一个异步任务仍在执行
-
@brightstar 在我的日志 cat 中,'AsyncTask : doInBackground' 被标记...
-
@LKM 好吧,如果你的 logcat 中有“doInBackground”,那么你的 asynctask 执行得很好