Context.StartService(Intent) Метод

Определение

Запрос на запуск данной службы приложений.

[Android.Runtime.Register("startService", "(Landroid/content/Intent;)Landroid/content/ComponentName;", "GetStartService_Landroid_content_Intent_Handler")]
public abstract Android.Content.ComponentName? StartService (Android.Content.Intent? service);
[<Android.Runtime.Register("startService", "(Landroid/content/Intent;)Landroid/content/ComponentName;", "GetStartService_Landroid_content_Intent_Handler")>]
abstract member StartService : Android.Content.Intent -> Android.Content.ComponentName

Параметры

service
Intent

Определяет службу, которая должна быть запущена. Намерение должно быть полностью явным (с указанием имени компонента). Дополнительные значения могут быть включены в дополнительные сведения о намерениях для предоставления аргументов вместе с этим конкретным вызовом запуска.

Возвращаемое значение

Если служба запущена или уже запущена, ComponentName возвращается значение фактической запущенной службы; в противном случае, если служба не существует, возвращается значение NULL.

Атрибуты

Исключения

Комментарии

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

Каждый вызов этого метода приведет к соответствующему вызову метода целевой службы android.app.Service#onStartCommand с указанным здесь намерением <<var>или var>. Это обеспечивает удобный способ отправки заданий в службу без привязки и вызова к ее интерфейсу.

Использование startService() переопределяет время существования службы по умолчанию, управляемое : #bindServiceтребует, чтобы служба оставалась запущенной до #stopService вызова, независимо от того, подключены ли к ней какие-либо клиенты. Обратите внимание, что вызовы startService() не вложены: независимо от того, сколько раз вы вызываете startService(), один вызов будет #stopService останавливать его.

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

Эта функция вызывает исключение SecurityException , если у вас нет разрешения на запуск данной службы.

<div class="внимание">

<strong>Примечание.</strong> Каждый вызов startService() приводит к значительной работе, выполняемой системой по управлению жизненным циклом службы, связанную с обработкой намерения, что может занять несколько миллисекундах времени ЦП. Из-за этой стоимости startService() не следует использовать для частой доставки намерений в службу, а только для планирования значительных работ. Используется #bindService bound services для высокочастотных вызовов.

Начиная с версии android.os.Build.VERSION_CODES#Oпакета SDK приложения, предназначенные для пакета SDK или более поздней версии android.os.Build.VERSION_CODES#O , не могут запускать фоновые службы из фонового режима. См.

Ограничения фонового выполнения для получения дополнительных сведений.

<Strong>Примечание.</strong> Начиная с версии android.os.Build.VERSION_CODES#Sпакета SDK приложения, предназначенные для пакета SDK версии или более поздней, android.os.Build.VERSION_CODES#S не могут запускать службы переднего плана из фонового режима. См.

Изменения в поведении: приложения, предназначенные для Android 12

вы найдете дополнительные сведения. </Div>

Документация по Java для android.content.Context.startService(android.content.Intent).

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.

Применяется к

См. также раздел

  • StopService(Intent)
  • <xref:Android.Content.Context.BindService(Android.Content.Intent%2c+Android.Content.IServiceConnection%2c+Android.Content.IServiceConnection)>