Медленная загрузка содержимого из URL

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

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

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


Вот мой код,

(Извлечение сделано в получить данные() метод с использованием 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.");
}

}
}

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

0

Решение

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

0

Другие решения

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

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

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

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

0

По вопросам рекламы [email protected]