Медленная выборка содержимого из URL-адреса

Я пытаюсь получить содержимое этого URL-адреса. Содержимое будет изменено для каждого обновления.

Я написал свой код, чтобы получить контент и отобразить его в своем приложении с помощью TextView нажатием кнопки.

Но для получения данных и отображения в Textview требуется больше времени (минимум 2 секунды, максимум 6 секунд). Итак, какое изменение мне нужно в моем коде, чтобы сделать его эффективным и уменьшить задержку.


Вот мой код,

(Получение в методе getData () с использованием метода URLConnection )

public class MainActivity extends AppCompatActivity { TextView resultView; String TAG="MainActivity kbt"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); StrictMode.enableDefaults(); resultView = (TextView) findViewById(R.id.result); try { getData(); } catch (IOException e) { e.printStackTrace(); } Button insert=(Button) findViewById(R.id.button); insert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // TODO Auto-generated method stub try { getData(); } catch (IOException e) { e.printStackTrace(); } } }); } public void getData() throws IOException { String result = ""; InputStream isr = null; URLConnection urlConnection = null; URL url = new URL("http://kbtganesh.16mb.com/index.php"); urlConnection = url.openConnection(); isr =urlConnection.getInputStream(); try { BufferedReader reader = new BufferedReader(new InputStreamReader(isr)); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } isr.close(); result=sb.toString(); } catch(Exception e){ Log.e("log_tag", "Error converting result "+e.toString()); } //parse json data try { resultView.setText(result); } catch(Exception e) { Log.e("log_tag", "Couldn't set text, damnit."); } } } 

Заранее спасибо (:

Попробуйте протестировать его на локальном сервере на вашем компьютере, вместо удаленного, как у вас. Иногда это просто медленная скорость интернета, замедляющая страницу вниз, и ничего общего с кодом.

Удалите StrictMode.enableDefaults(); вместо этого используйте AsyncTask для извлечения данных из сети, поскольку doc говорит

«Хранение операций с дисками и сетью с основного потока обеспечивает гораздо более плавные, более гибкие приложения»

проверить документ здесь StrictMode Doce

Else все выглядит отлично, вы также можете проверить улучшение в конце веб-службы, проверить запрос, который он может оптимизировать, поскольку есть очень меньше данных, которые возвращает api