Помогите Диме помочь помогать помочь помогать

Праймер битумный технониколь 01

09.08.2016


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


После подключения локальной службы клиент получает возможность вызывать методы, объявленные открытыми в интерфейсе взаимодействия. Вызовы напрямую обращаются к объекту Java, созданному в службе, и выполняются в потоке вызывающего клиента. Поэтому для выполнения продолжительных операций, которые желательно вынести из Ш-потока, можно воспользоваться асинхронным режимом, реализованным либо в клиенте, либо в службе.


Поток хранит ссылку на объект-приемник в компонснтс-клиентс. Это увеличивает вероятность утечки памяти в дереве объектов, на которое ссылается объект-приемник в клиенте.


Объект BoundLocalActivity, вызывающий службу BoundLocalService, определяет реализацию объекта-приемника OperationListener для извлечения результата выполнения фоновой задачи и использования его в UI-потоке. Это наиболее часто встречающийся прием. Фоновый поток в службе BoundLocalService ссылается на объект-приемник, поэтому все ссылки в объекте недоступны для сборщика мусора, пока данный поток выполняется.