2012-03-06 1 views
3

В моем приложении для Android используется класс Application (а именно его подкласс Application), чтобы запустить поток для извлечения данных с веб-сайта. Как только он делает это успешно, он должен предоставить эти данные текущему Activity (в моем приложении есть 2 действия). Как я могу сообщить об этом Activity? Как я могу сообщить текущему Activity, что есть новые доступные данные, которые необходимо получить и представить? Спасибо за ваши ответы.Сделать приложение связи с текущей деятельностью

ответ

2

Что касается использования широковещательной системы.

Вы можете получить контекст в классе Application с помощью getApplicationContext(); Затем вы можете отправить свой собственный эфир:

Intent i = new Intent(); 
i.setAction("your.package.customintent.TEST"); 
context.sendBroadcast(i); 

Затем вы можете реализовать широковещательный приемник в вашей деятельности, чтобы получить передачу. Дополнительная информация здесь: http://thinkandroid.wordpress.com/2010/02/02/custom-intents-and-broadcasting-with-receivers/

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

+0

Из их описания это звучит как локальная передача приложений будет более уместной: Intent i = новый Intent (TEST_ACTION); LocalBroadcastManager.getInstance (контекст) .sendBroadcast (i); – JDJ

0

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

+0

Я только что прочитал, что «вам не нужно развивать собственного провайдера, если вы этого не сделаете намерены поделиться вашими данными с другими приложениями »из документации Google по поставщикам контента. Если мне не нужно делиться моими данными с другим приложением, имеет ли sqlLite нечто сопоставимое с наблюдателем контента? – user3331142

+0

Также объект приложения будет последним, который будет уничтожен в любом приложении. – sgupta

0

Это очень плохая практика, так как вы никогда не знаете, когда объект приложения будет уничтожен. Вместо этого я рекомендую использовать службу. Читайте в нем разработчики Android!

+0

Почему услуга? Разве не было бы немного излишним использовать услугу, если вам нужно всего лишь получить данные, пока пользователь использует приложение? – user3331142