Синхронный вызов API через Android/Java
Кто-нибудь знает, как можно сделать синхронный звонок через андроид? Я в основном не хочу продолжать дальше, пока не получу ответ обратно с сервера.
Это самая простая версия кода, который у меня есть
URL url = new URL("http://google.com");
HttpURLConnection connection = (HttpURLConnection)
url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
int code = connection.getResponseCode();
Но это дает мне эту ошибку, потому что он создается в главном потоке.
NetworkOnMainThreadException
Любая помощь с благодарностью, спасибо
1 ответ
Решение
В основном вы не можете делать HTTP-вызовы на MainThread.
Есть много способов, как создать поток Runnable, AsyncTask и т. Д. Попробуйте следующий фрагмент кода:
new Thread(new Runnable()
{
public void run()
{
try
{
//your HTTP request code..
}
catch (IOException e)
{
//Handle exceptions
e.printStackTrace();
}
}
}).start();
Для дальнейшего чтения многопоточности см. Документацию Android Developer.