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#onStartCommand メソッドに対応する呼び出しが発生し <、ここで var>intent</var> が指定されます。 これにより、インターフェイスにバインドして呼び出すことなく、サービスにジョブを送信する便利な方法が提供されます。

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

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

この関数は、指定されたサービスを開始するアクセス許可がない場合にスロー 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> SDK バージョン以降では、SDK バージョンandroid.os.Build.VERSION_CODES#Sandroid.os.Build.VERSION_CODES#S以上を対象とするアプリはバックグラウンドからフォアグラウンド サービスを開始できません。 参照先

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

をご覧ください。 </部>

android.content.Context.startService(android.content.Intent)Java ドキュメント。

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

適用対象

こちらもご覧ください

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