Получаю ответ от сервера, но не могу открыть другую активность
Мутный заголовок получился. Ну, да ладно. Проблема, собственно, такая: развернул локальный сервер, на котором одна переменная с плавающим значением (0/1). При получении 1 мне надо открыть другую активность. Значения я получаю. Для наглядности даже выводится в TextView и в Log. Но не могу понять как при этом ответе перейти на другую активность.
response = task.execute(url).get(); //тут получил ответ 0 или 1
далее пробую:
if (response.equals("1")) {
Intent intent = new Intent(getApplicationContext(), WebViewActivity.class);
startActivity(intent);
}
И ничего не происходит. Пробовал compareTo и тоже не происходит ничего. Алярма Полный код:
private void getResponse() {
DownloadAnswerServerTask task = new DownloadAnswerServerTask();
try {
response = task.execute(url).get();
Log.i("MyResponse", response);
if(response.equals("1")) {
Intent intent = new Intent(getApplicationContext(), WebViewActivity.class);
startActivity(intent);
}
} catch (ExecutionException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private class DownloadAnswerServerTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... strings) {
HttpURLConnection urlConnection = null;
StringBuilder builder = new StringBuilder();
try {
urlConnection = (HttpURLConnection) new URL(strings[0]).openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(250);
urlConnection.setReadTimeout(250);
if (HttpURLConnection.HTTP_OK == urlConnection.getResponseCode()) {
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line;
while ((line = reader.readLine()) != null) builder.append(line).append("\n");
return builder.toString();
} else {
Log.i("MyError", getString(R.string.response_server));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (urlConnection != null) urlConnection.disconnect();
}
return null;
}
}
Ответы (1 шт):
Спасибо большое за ответ. Нашел причину. Я зря решил в билдер перенос строки добавить, чтобы ответ не лепило в одну строчку. bulder.append(line).append("\n"); - перенос не надо было добавлять. В итоге оставил builder.append(line); и все заработало как надо)))