Я занимаюсь разработкой платформы микроблогов, в которой мне нужно заполнить страницу Post (пользовательский класс с полями), полученный с сервера Django с помощью HttpGet.
На стороне клиента (Android) я использую GSON для анализа ответов от сервера к типу Post. Поэтому я требую, чтобы сервер отправлял Пост один за другим, чтобы добавить каждый из них в список Постов после синтаксического анализа, а затем, наконец, уведомить адаптер списка об изменениях в наборе данных после добавления всех Постов.
Но проблема возникает при начальной загрузке приложения, страница должна быть заполнена 10 последними публикациями с сервера. Поэтому я подумал о довольно грязном способе отправки 10 запросов httpget на сервер один за другим на сервер. Код выглядит так
public void populateTimeline(){
Thread populate = new Thread(){
public void run(){
Looper.prepare();
InputStream data = getData(serviceURL); //gets a post from server
if(data!= null){
String result = responsetoString(data); //turns response to String
progressDialog.show();
Posts post = toPostfromGson(result); //Parses string to Post Object
}
Looper.loop();
}
};
populate.start();
}
Я думал о том, чтобы выполнить его 10 раз в цикле, чтобы получить 10 постов, которые мне требуются. Но в Django, насколько я знаю (поправьте меня, если я ошибаюсь), нет способа сохранить индекс последнего отправленного сообщения клиенту и, следовательно, нет способа отправить «следующее» сообщение при следующем запросе HttpGet. Так что я вне идей.
Мне кажется, есть лучший способ сделать это эффективно. Любая помощь будет высоко ценится.