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

開始するサービスを識別します。 意図は完全に明示的である必要があります (コンポーネント名を指定します)。 この特定の開始呼び出しと共に引数を指定するための追加の値を Intent extras に含めることがあります。

返品

サービスが開始されている場合、または既に実行中の場合は、開始された実際のサービスの ComponentName が返されます。それ以外の場合は、サービスが存在しない場合は null が返されます。

属性

例外

注釈

特定のアプリケーション サービスを開始することを要求します。 インテントには、開始する特定のサービス実装の完全なクラス名、またはターゲットとなる特定のパッケージ名が含まれている必要があります。 意図が指定されていない場合は、これに関する警告がログに記録されます。 この場合、複数の一致するサービスのいずれかを使用できます。 このサービスがまだ実行されていない場合は、インスタンス化されて開始されます (必要に応じてプロセスを作成します)。実行中の場合は、実行中のままです。

このメソッドを呼び出すたびに、android.app.Service#onStartCommandvar<intent>/var<を使用して、ターゲット サービスの> メソッドに対応する呼び出しが行われます。 これにより、インターフェイスにバインドして呼び出すことなく、サービスにジョブを送信する便利な方法が提供されます。

startService() を使用すると、 #bindServiceによって管理される既定のサービス有効期間がオーバーライドされます。クライアントが接続されているかどうかに関係なく、 #stopService が呼び出されるまでサービスの実行を維持する必要があります。 startService() の呼び出しは入れ子にならないことに注意してください。startService() を何回呼び出しても、 #stopService を 1 回呼び出すと停止します。

システムは、可能な限りサービスを実行し続けようとします。 停止する必要があるのは、現在のフォアグラウンド アプリケーションが非常に多くのリソースを使用しているため、サービスを強制終了する必要がある場合だけです。 サービスのプロセスでエラーが発生した場合は、自動的に再起動されます。

指定されたサービスを開始する権限がない場合、この関数は SecurityException をスローします。

<div class="caution">

<strong>Note:</strong> startService() を呼び出すたびに、システムが意図の処理を取り巻くサービス ライフサイクルを管理するための重要な作業が行われ、CPU 時間が数ミリ秒かかる場合があります。 このコストのため、startService() は、サービスへの頻繁な意図の配信には使用しないでください。また、重要な作業をスケジュールする場合にのみ使用してください。 高周波呼び出しには #bindService bound services を使用します。

SDK バージョン android.os.Build.VERSION_CODES#O以降、SDK バージョン android.os.Build.VERSION_CODES#O 以降を対象とするアプリは、バックグラウンドからバックグラウンド サービスを開始できません。 参照先

詳細については、バックグラウンド実行の制限を参照してください。

<strong>Note:</strong> SDK バージョン android.os.Build.VERSION_CODES#S以降では、SDK バージョン android.os.Build.VERSION_CODES#S 以降を対象とするアプリはバックグラウンドからフォアグラウンド サービスを開始できません。 参照先

動作の変更: Android 12 を対象とするアプリ

詳細については、以下を参照してください。 </部>

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

こちらもご覧ください

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