2011-02-05 3 views
3

Приложение имеет активность для пользовательского интерфейса и службы для фонового опроса. Похоже на стандартный тариф.Рекомендации по разработке работы с фоновым сервисом

  1. Может ли AlarmManager запускать служебное намерение без активности? OnCreate вызывается?

  2. Есть ли какая-либо польза для осуществления деятельности & Услуга в разных приложениях? Будет ли это создавать 2 apk и сделать невозможным вывести на рынок как одно приложение? Можете ли вы поместить 2 приложения в один манифест?

  3. Что касается связи между ними:

-Если активность & обслуживания являются частью одной и той же заявки - не могу просто хранить общие объекты (например, объект пользователя) на область применения для 2 делиться?

-Похоже, мне даже не нужно беспокоиться с AIDL - у обоих могут быть только слабые ссылки друг на друга в области приложения, а также - и они могут вызывать методы друг на друга таким образом? Или они должны паб/подставить друг друга с каким-то видом наблюдателя или вещателем BroadcastListener?

ответ

3

Может ли AlarmManager запускать служебное намерение без участия функции OnCreate?

Да.

Есть ли какая-либо польза для проведения деятельности & Услуга в разных приложениях?

ИМХО, №.

Может ли это создать 2 apk и сделать невозможным размещение на рынке одного приложения?

Да.

Можете ли вы поместить 2 приложения в один манифест каким-то образом?

С точки зрения чистого XML в манифесте есть место для более чем одного элемента <application>. Однако AFAIK поддерживается только один.

Если активность & Service являются частью одного и того же применения - я просто не могу хранить общие объекты (такие как объект пользователя) в рамках приложения для 2, чтобы поделиться?

Для очень быстрых вещей, да. Однако имейте в виду, что ваша служба может быть отключена (Android, пользователем и т. Д.), После чего ваш процесс может быть разорван, а ваш объект Application отправляется poof. Я бы использовал это только для легкого кеширования.

Похоже, я даже не нужно возиться с AIDL

Правильно - что требуется только для связывания службы межпроцессного.

два могло только слабые ссылки друг на друг на области применения, а

Я бы не сделать это в миллион лет. Используйте платформу ответственно. Существует множество способов взаимодействия и услуг для общения, но они остаются слабо связанными (или, в случае локального шаблона привязки, тесно связаны с Android-ориентированным способом).

Или должны ли они паб/подходить друг к другу с помощью какого-либо вида наблюдателя или объекта BroadcastListener?

Что-то вдоль этих линий было бы предпочтительнее. Хотя деятельность и услуга могут быть одновременно резидентами одного и того же процесса, они не предназначены для прямой связи друг с другом.

+0

Еще раз спасибо CommonsWare - Я действительно продвигаюсь к правильному дизайну. Дальнейшее отслеживание на пути. – paulpooch

+0

Вопрос привел здесь: http://stackoverflow.com/questions/4908267/communicate-with-activity-from-service-localservice-android-best-practices – paulpooch

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