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

Карманные фильтры

09.08.2016


BluetoothService определяет общую точку входа COMMAND_START_ LISTENING для инициализации попытки сопряжения, по в службе ист метода для се остановки. Вместо этого процесс сопряжения завершается, когда служба BluetoothService останавливает сама себя, и ее метод onDestroyO отменяет попытку, после чего фоновый поток может завершиться. Благодаря этому исключается появление «задержавшихся» потоков после удаления службы:


public class BluetoothService extends Service {


public static final String C0MMAND_KEY = "command_key";


public static final String COMMAND_START_LISTENING = "command_start_discovery";


private static final UUID MY_UUID = ...; private static final String SDP_NAME = ...;


Службы, управляемые задачами, обычно используются для корректного завершения фоновых потоков и снижения вероятности остановки выполнения из-за завершения процесса. Когда служба останавливает саму себя вызовом метода stopSelf (), управление жизненным циклом компонента Service переходит к обрабатываемой задаче. Другими словами, задача определяет, когда именно карманные фильтры прекратят своё существование.


Жизненный цикл фонового потока определяет жизненный цикл службы. Следовательно, компонент всегда активен, пока задача выполняется в фоновом потоке, что увеличивает его шансы остаться живым. (Как было сказано в разделе «Завершение приложения» в главе 1, пустой процесс становится главным кандидатом на удаление операционной системой.) Таким образом, службы, управляемые задачами, позволяют приложениям использовать компонент Service для выполнения чрезвычайно длительных операций в фоновых потоках.