ContextWrapper.StartService(Intent) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
請求啟動某項應用程式服務。
[Android.Runtime.Register("startService", "(Landroid/content/Intent;)Landroid/content/ComponentName;", "GetStartService_Landroid_content_Intent_Handler")]
public override Android.Content.ComponentName? StartService(Android.Content.Intent? service);
[<Android.Runtime.Register("startService", "(Landroid/content/Intent;)Landroid/content/ComponentName;", "GetStartService_Landroid_content_Intent_Handler")>]
override this.StartService : Android.Content.Intent -> Android.Content.ComponentName
參數
- service
- Intent
識別即將啟動的服務。 意圖必須是完全明確的(提供元件名稱),或指定目標的特定套件名稱。 意圖附加值可包含,以配合此特定啟動呼叫提供論點。
傳回
請求啟動某項應用程式服務。 Intent 應該包含要開始的特定服務實作的完整類別名稱,或是針對特定套件名稱。 如果意圖說明較少,系統會記錄警告。 此時可使用多種匹配服務中的任一。 如果此服務尚未執行,將會被實例化並啟動(如有需要,建立程序);如果它在運行,那它就會一直運作。 每次呼叫此方法都會產生對目標服務的 Service.onStartCommand(Intent, int, int) 方法的相應呼叫,並在此給出意圖。 這提供了一種方便的方式,可以將工作提交給服務,而無需綁定並呼叫其介面。 使用 startService() 會覆蓋由 bindService(Intent, BindServiceFlags, Executor, ServiceConnection) 管理的預設服務壽命:它要求該服務持續運行,直到呼叫 stopService(Intent),無論是否有用戶端連接。 請注意,呼叫 startService() 不會巢狀:無論你呼叫 startService() 多少次,只要呼叫一次 stopService(Intent),它就會停止。 系統會盡量讓服務持續運行。 只有當當前前台應用程式使用資源過多,導致服務必須終止時,才應該停止。 若服務過程中發生任何錯誤,將自動重新啟動。 如果你沒有啟動該服務的權限,這個函式會拋出 SecurityException。 注意:每次呼叫 startService() 都會讓系統在管理意圖處理相關的服務生命週期上投入大量工作,這可能耗費數毫秒的 CPU 時間。 由於成本高昂,startService() 不應用於頻繁的意圖傳遞,僅用於排程重大工作。 高頻通話使用綁定服務。 從 SDK 版本 Build.VERSION_CODES 開始。O , apps targeting SDK Version Build.VERSION_CODES.O 級或以上的人員不得從背景啟動背景服務。 詳情請參見背景執行限制。 注意:從 SDK 版本 Build.VERSION_CODES 開始。S,針對 SDK 版本 Build.VERSION_CODES 的應用程式。S 級以上的用戶不得從背景啟動前景服務。 詳情請參見行為變更:針對 Android 12 的應用程式。 參數服務意圖:識別即將啟動的服務。 意圖必須完全明確(提供元件名稱)。 意圖附加值可包含,以配合此特定啟動呼叫提供論點。 回傳 ComponentName 此值可能是空值。
- 屬性
備註
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
Java 文件 android.content.ContextWrapper.startService(android.content.Intent)。