做設(shè)計什么設(shè)計比較好的網(wǎng)站開魯網(wǎng)站seo
前臺服務(wù)
1. 指定前臺服務(wù)類型
以 Android 14(API 級別 34)或更高版本為目標(biāo)平臺的應(yīng)用,需要為應(yīng)用中的每項前臺服務(wù)指定服務(wù)類型,因為系統(tǒng)需要特定類型的前臺服務(wù)滿足特定用例。具體介紹如下:
在Android 10 在 <service> 元素內(nèi)引入了 android:foregroundServiceType 屬性。
如果您的應(yīng)用以 Android 14 為目標(biāo)平臺,則必須指定適當(dāng)?shù)那芭_服務(wù)類型,可組合使用多個類型;以下了可供選擇的前臺服務(wù)類型:
? camera
? connectedDevice
? dataSync
? health
? location
? mediaPlayback
? mediaProjection
? microphone
? phoneCall
? remoteMessaging
? shortService
? specialUse
? systemExempted
如果應(yīng)用中的用例與這些類型均不相關(guān),考慮使用 WorkManager 或Android 14中引入的新Api,即作業(yè)必須是用戶發(fā)起的數(shù)據(jù)傳輸作業(yè)。
在上述的類型中,Android 14 中新增 health, remoteMessaging, shortService, specialUse
和 systemExempted
等類型。
類型示例:
<manifest ...>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
<application ...>
<service
android:name=".MyMediaPlaybackService"
android:foregroundServiceType="mediaPlayback"
android:exported="false">
</service>
</application>
</manifest>
備注: 如果以 Android 14 或更高版本為目標(biāo)的應(yīng)用未在清單中定義給定服務(wù)的類型,系統(tǒng)會在調(diào)用 startForeground() 時引發(fā) MissingForegroundServiceTypeException。
2. 啟動時包含前臺服務(wù)類型
啟動前臺服務(wù),最好的方式,是使用 ServiceCompat 版本的 startForeground()(適用于 androidx-core 1.12 及更高版本),傳入前臺服務(wù)的類型值,可傳入一個或多個,比如aa,或aa|bb, 或aa|bb|cc;
啟動服務(wù),ServiceCompat