#android
#Android
Вопрос:
В моем приложении для Android я следую шаблону MVC и получаю большой файл с сервера. Я хотел бы обновлять пользовательский интерфейс по мере выполнения синтаксического анализа одного или двух объектов. Я имею в виду, что если я получаю 20 объектов movie с сервера, при синтаксическом анализе я хотел бы отобразить содержимое пользователю, когда будут проанализированы 2 фильма и созданы 2 объекта movie. Я выполняю синтаксический анализ в отдельном классе синтаксического анализа и в activity вызываю свою асинхронную задачу.
Пожалуйста, дайте мне знать ваши ценные предложения.
Комментарии:
1. Обязательно ли загружать эти 20 фильмов в один файл или вы могли бы сначала загрузить 2 фильма, а затем остальные после этого? Это упростило бы просмотр двух фильмов перед продолжением загрузки.
2. Код, который у меня есть, предназначен для полного синтаксического анализа в моем классе синтаксического анализа и возвращает объект list of Movies. Что мне нужно, так это то, что с сервера я буду получать 20 фильмов подряд. Во время синтаксического анализа я хотел бы проанализировать его полностью, но обновить пользователя после получения 3 объекта movie.
Ответ №1:
Вы могли бы добавить метод downloadMoviesAsynchronously
:
public static interface MoviesDownloadedHandler {
public void run(Movie[] movies);
}
public void downloadMoviesAsynchronously(final MoviesDownloadedHandler downloadedFirstTwo, final MoviesDownloadedHandler downloadedAll) {
new Thread(new Runnable() {
public void run() {
int count = getMovieCount();
Movie[] movies = new Movie[count];
for (int i = 0; i < count; i ) {
movie[i] = downloadMovie();
if (i == 1) // second movie
downloadedFirstTwo.run(movies);
}
downloadedAll.run(movies);
}
}).start();
}
Затем пользовательский интерфейс может вызвать этот метод и указать некоторые обработчики событий, которые обновляют пользовательский интерфейс.
Комментарии:
1. На самом деле в моем приложении весь список фильмов объединяется в один json. Мне нужна функция синтаксического анализа, например, как обновлять пользовательский интерфейс после анализа каждых 3 фильмов
2. Насколько велик ваш json, что для его анализа требуется заметное время? Я не думаю, что сами видеоданные находятся в строке json, поэтому синтаксический анализ наверняка не займет больше секунды, не так ли?