Активность или сервис в фоновом режиме? - PullRequest
0 голосов
/ 18 декабря 2010

Вот мои настройки; У меня есть новостное приложение. Это приложение загружает несколько просмотров списка из локального хранилища (я злоупотребляю разделяемыми настройками для этого, но если это будет хорошей практикой, это будет другой вопрос). Я хочу иметь возможность плавно обновить это локальное хранилище.

Мой первый подход состоял в том, чтобы заставить кнопку вызывать сервис, который добился цели. Но я также хотел, чтобы сервис обновлял активность, когда это было сделано. Я не смог этого сделать. Мой текущий подход, кажется, работает, но не так гладко в 3G. Действие A показывает поле «Загрузка», затем запускает действие B и уничтожает себя. Действие B также показывает окно загрузки, выполняет загрузку, затем уничтожает себя и перезапускает действие A с новым контентом. Тем не менее, этот последний подход заставляет экран потемнеть на несколько секунд при переходе от A к B при использовании 3G.

Ради визуальной плавности я бы хотел, чтобы одно всплывающее окно загрузки отображалось непрерывно. Когда все выполнено, активность должна быть обновлена.

Кто-нибудь знает, как мне этого добиться?

Надеюсь, мое объяснение было достаточно ясным. В противном случае, я был бы рад поделиться с вами некоторым кодом.

Большое спасибо заранее

1 Ответ

1 голос
/ 19 декабря 2010

Глядя на код, который вы указали в своем комментарии, вы слишком много работаете в методе onCreate своей деятельности.onCreate должно быть легким, чтобы пользовательский интерфейс отображался как можно быстрее.Вы, вероятно, хотите перенести основную часть вашей установки Activity на метод onResume.Кроме того, все, что блокирует поток пользовательского интерфейса (например, выборка и анализ данных), должно выполняться в потоке.Посмотрите на использование AsyncTask (http://developer.android.com/reference/android/os/AsyncTask.html) для этой цели в вашем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...