Хороший вопрос, который оставляет очень много места для встречных вопросов: -)
Я вижу по крайней мере два способа пройти по пути (обратите внимание, что я не очень разбираюсь в твиттере или как он используется):
Вы синхронизируете данные Twitter («твиты»?!?) На телефоне для последующего просмотра.
Вы всегда просматриваете снимоктекущие твиты на заданном канале и ничего не хранят (кроме учетных данных пользователя).
Начиная с первого варианта , который вы обычно хотите синхронизироватьбаза данных SQLite (возможно, с пользовательским провайдером контента ) на цели с данными из твиттерного канала на веб-серверах твиттера (вы можете немного узнать о том, как выглядит общедоступный твиттер-API здесь).
Эта синхронизация будет выполняться фоновой службой на телефоне.Ваш фактический графический интерфейс не будет связываться с самим этим сервисом, он будет скорее читать данные из (и только из) локальной базы данных SQLite.Таким образом, ваш графический интерфейс не будет зависеть от задержки в сети, трафика данных или доступности данных из Интернета.Это будет зависеть только от подключения к базе данных на вашей локальной цели.Убедитесь, что вы запускаете свой сервис в отдельном потоке.По умолчанию он будет работать в главном потоке (он же «GUI-поток»).
Вы можете передать запись в AlarmManager , который время от времени будит вашу фоновую службу;служба будет кешировать данные твиттера в базе данных, а затем уничтожать себя (для экономии ресурсов).
Второй вариант не потребует уровня кэширования базы данных (однако рекомендуется избавиться от него).веб-зависимостей в вашем слое GUI, база данных будет содержать только самые последние данные, старые данные будут перезаписаны независимо от того, прочитал ли пользователь их или нет).
В обеих альтернативах выВозможно, вы захотите сохранить некоторую базовую информацию о пользователе, такую как имя пользователя и пароль.Вы можете сохранить эти значения в базе данных SQLite или, если хотите, просто: в инфраструктуре Shared Preferences .
Скорее всего, вам также потребуется чтение и анализ XML данные из интернета.Это чтение и анализ будут выполняться сервисным уровнем (помните: запустите его в отдельном потоке, чтобы избежать отставания пользовательского интерфейса и даже не получить тайм-аут приложения, не отвечающего).