2010-09-30 2 views
0

открыть новую тему, чтобы говорить о моей проблеме :-), у меня есть проблемы с общением между «службой» к «деятельности»Как работает связь между сервисом и деятельностью?

, что у меня есть: У меня есть FTP загрузка файла, который загружается на заднем плане как сервис! В итоге у меня было время X в переменной. Кроме того, проверяется, полностью ли загружен файл, я делаю это с простым сравнением размера данных.

Так у меня есть время 0s «время начала» 12:22:00 up as 20sec является «время окончания» 12:22:20 и размер загружаемого 0Kb идет к 5000kb.

Эти значения определены в сервисе.

Проект:

Я хочу показать это графически или с помощью текста в графическом интерфейсе деятельности.

так:

файла Время загрузки: X секунд X секунд, будет проверяться постепенно и динамически отображаются. 1. сек, 2 сек ...... 20 сек

Скачать трафик: X кб 5000 кб

Скачать ставок будет отображаться: 0kb, 250 кб, 500 кб ..... 5000 кб.

Теперь мой вопрос:

, как я могу это сделать, который передает на службе эти значения в деятельности! и как я могу отображать в операции «динамически и автоматически».

Я благодарю всех вас за ваши усилия

ответ

1

Отправить радиопередачу Intent с данными через sendBroadcast(), что деятельность поднимает с BroadcastReceiver. Here is a sample project из одной из моих книг, демонстрирующих это.

+0

В частности, обратите внимание на линии 225 WeatherPlusService.java ("эфир" объявляется в верхней части) и линий 113-117 из WeatherPlus.java. Обязательно зарегистрируйтесь и отмените регистрацию BroadcastReceiver в обработчиках onPause() и onResume() вашей деятельности. Вы можете добавить любые данные, которые вы хотите передать в наборе Intent's Bundle. Это все, что вам нужно сделать. – Andrew

0

Подумайте, что вы хотите без Сервиса, но с AsyncTask. Вы можете обновить интерфейс с текущим прогрессом, используя метод publishProgress (...) AsyncTask. Нет служб, нет широковещательных приемников.

http://developer.android.com/reference/android/os/AsyncTask.html

Смежные вопросы