Накатал пробный проект. Заметил, что поток AsyncTask не закрывается, метод onPostExecute не отрабатывает. В потоке я отсылаю данные на сервер. Данные получаю успешно.
Вот код:
Код: Выделить всё
class MyTask extends AsyncTask<Void, Void, Void> {
String Mess;
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
Log.d(TAG, "Process started...");
java.util.Date d = new java.util.Date();
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String device_id = tm.getDeviceId();
Mess="Time: " + d.getTime()+"\n"+"IMEI: " + device_id;
Log.d(TAG, Mess);
// Отправляем на сервер
String status = null;
DefaultHttpClient client = new DefaultHttpClient(); //HTTP клиент для отправки и получения данных
HttpPost post = new HttpPost("http://...."); // Создаем POST запос
List<BasicNameValuePair> pair = new ArrayList<BasicNameValuePair>(); // создаем список посылаемых данных
pair.add(new BasicNameValuePair("time", ""+d.getTime()));
pair.add(new BasicNameValuePair("imei", ""+device_id));
try {
post.setEntity(new UrlEncodedFormEntity(pair)); // теперь в наш POST метод добавляем список посылаемых данных
HttpResponse response = client.execute(post); // Отправляем запрос и записываем данные в клаасс HttpResponse
}
catch (ClientProtocolException e) {
Log.d(TAG,"Oops, Something wrong with URL...");
e.printStackTrace();
}
catch (IOException e) {
Log.d(TAG,"Oops, Something wrong with inpur stream...");
e.printStackTrace();
}
// сервер
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
Log.d(TAG, "Process ended...");
}
}
Что я делаю не так?