Java Android Отправляйте данные в серверное приложение, никогда не используйте onPostExecute()JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java Android Отправляйте данные в серверное приложение, никогда не используйте onPostExecute()

Сообщение Anonymous »

У меня проблема с отправкой данных на сервер. Для подключения к серверу я использовал сокет. Чтобы отправить данные на сервер, я использую AsyncTask. И у меня проблема:
когда приложение отправляет данные, мое приложение не видит завершения этого действия и никогда не использует onPostExecute().
Это мой код:
public class MyClientTask extends AsyncTask {
String dstAddress;
int dstPort;
String response = "";

MyClientTask(String addr, int port) {
dstAddress = addr;
dstPort = port;
}

@Override
protected Void doInBackground(Void... arg0) {
// if (pingHost(1000)) {
socket = null;
try {
socket = new Socket(dstAddress, dstPort);
ByteArrayOutputStream byteArrayOutputStream =
new ByteArrayOutputStream(1024);
byte[] buffer = new byte[1024];
DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream());

byte[] theByteArray = message.getBytes();
lengthMessage = (short) theByteArray.length;

outputStream.writeShort(lengthMessage);
outputStream.write(theByteArray);
outputStream.writeShort(width);
outputStream.writeShort(height);
outputStream.writeInt(lengthbmp);
outputStream.writeInt(lengthResizebmp);
outputStream.writeShort(11);
outputStream.write(imageInByte );

try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}

int bytesRead;
InputStream inputStream = socket.getInputStream();

while ((bytesRead = inputStream.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, bytesRead);
response += byteArrayOutputStream.toString("UTF-8");
}

outputStream.flush();
outputStream.close();

} catch (UnknownHostException e) {
e.printStackTrace();
isSuccsess = false;
response = "UnknownHostException: " + e.toString();
} catch (IOException e) {
e.printStackTrace();
Log.d("la", "nie udało sie");
isSuccsess = false;
response = "IOException: " + e.toString();
}
return null;
}

@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (socket != null) {
try {
socket.shutdownInput();
socket.shutdownOutput();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(isSuccsess){
Toast.makeText(MainActivity.this, "Zdjęcie zostało wysłane !" , Toast.LENGTH_LONG).show();
bm = null;
clearEt();
ivImage.setImageBitmap(bm);
}
else{
Toast.makeText(MainActivity.this , "Nie udało się wysłać zdjęcia !" , Toast.LENGTH_LONG).show();
}

pbWheel.setVisibility(View.INVISIBLE);
}

@Override
protected void onPreExecute() {
super.onPreExecute();
pbWheel.setVisibility(View.VISIBLE);
}
}


Подробнее здесь: https://stackoverflow.com/questions/407 ... ostexecute
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»