Лучшие практики для разработки Деятельности с фоновой службой - PullRequest
3 голосов
/ 05 февраля 2011

Мое приложение имеет активность для пользовательского интерфейса и службу для фонового опроса.Походит на стандартный тарифСервис в разных приложениях?Это создаст 2 apk и сделает невозможным размещение в Market как одно приложение?Можете ли вы как-то поместить 2 приложения в один манифест?

Относительно связи между ними:

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

- Кажется, мне даже не нужно беспокоиться о AIDL - у этих двух тоже могут быть слабые ссылки друг на друга в области приложения - и они могут вызывать методы друг друга таким образом?Или они должны публиковать / заменять друг друга какими-то шаблонами Observer Pattern или BroadcastListener?

1 Ответ

3 голосов
/ 05 февраля 2011

Может ли AlarmManager инициировать намерение службы без вызова Activity OnCreate?

Да.

Есть ли какая-то польза от размещения Активности и Сервиса в разных Приложениях?

ИМХО, нет.

Это создаст 2 apk и сделает невозможным ввод в Market как одно приложение?

Да.

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

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

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

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

Кажется, мне даже не нужно беспокоиться о AIDL

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

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

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

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

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

...