Связь между действиями: намерение или услуга: что быстрее?

Есть ли существенная разница во времени, необходимом для отправки данных по сервису или с использованием намерения?

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

Это две совершенно разные вещи. Вопрос не в том, что происходит быстрее, а в том, что вы пытаетесь сделать.

Если вы хотите перенести данные из одной активности в другую, вы передаете ее через намерение. Если этого недостаточно для вас (слишком много данных, например), вы можете использовать другие подходы, но они не будут включать Сервис. Например, у вас может быть одноэлемент, в котором хранятся ваши общие данные, к которым оба действия имеют доступ … но будьте предельно осторожны в том, что ваш процесс убит в разных точках, из-за чего синглтон уходит (а использование службы для этого не позволит Вы уходите, не имея дел с такой ситуацией).

Служба должна выполнять некоторую работу в фоновом режиме, даже если пользователь не взаимодействует напрямую с приложением. Особенно, если мы говорим о вещах в пределах одного .apk (и, как правило, одного процесса), существует очень мало причин использовать Сервис.

Это зависит от того, что вам нужно.

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

Услуга предназначена для обработки данных в фоновом режиме и может быть очень загружена процессором / памятью. С помощью службы вы должны создать интерфейс между своей деятельностью и службой, поэтому вы можете вызвать базовые методы Сервиса непосредственно из Activity, вы можете управлять сервисом из Activity.

Это действительно не та же самая цель. Прочитайте документацию о намерениях и информацию, которую вы можете связывать с ней, это, вероятно, то, что вам нужно.

Многие методы передачи данных между действиями. См. Здесь советы по выбору.

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

Службы запускаются в фоновом режиме, а другая активность остается на переднем плане. «Фон» не означает, что он не отображается – большинство служб имеют графическую визуализацию какого-либо типа – это означает, что он не является частью стека действий. Например, ваша активность может отправлять текстовое сообщение, а ваша Служба может быть мягкой клавиатурой. Сервисы могут взаимодействовать с действиями – в этом случае ваша клавиатура, конечно же, должна отправлять символы в текстовое сообщение «Активность», но часто предполагает использование довольно сложного интерфейса. Он используется для сбора и передачи «живых» пользовательских данных в Activity.