Я пытаюсь отправить HTTP-запрос каждый раз, когда кто-то нажимает на кнопку «Отправить» в приложении чата Firebase. Этот запрос не связан с Firebase. Но важно для какой-то функциональности в нем.
Каждый раз, когда я нажимаю кнопку отправки, мое приложение немного отстает. Кроме того, каждый раз, когда я вызываю функцию Firebase, прежде чем отправить этот http-запрос, мое приложение полностью зависает ...
Вызов только Firebase очень плавный ...
Я также хочу отправить набор текстасигнал через http соединение с другим сервером. Но из-за этой задержки это почти невозможно ...
Это мой код,
public static String post(URL url, String data) throws IOException {
StringBuilder out = new StringBuilder();
final CountDownLatch latch = new CountDownLatch(1);
Thread httpThread = new Thread(new Runnable() {
@Override
public void run() {
try {
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("User-Agent", userAgent);
conn.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(
conn.getOutputStream());
writer.write(data);
writer.flush();
String line;
BufferedReader input = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
try {
while ((line = input.readLine()) != null) {
out.append(line).append("\n");
}
} finally {
input.close();
}
latch.countDown();
} catch (Exception e) {
}
}
});
httpThread.start();
try {
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Sending Output : "+out);
return out.toString().trim();
}
Также я пробовал тестировать с определенным классом AsyncTask , но я 'Я получаю ту же задержку или проблему замораживания. Что я делаю неправильно? (