ともちゃんのアプリ開発日記

組込みC言語プログラマだったともちゃんが、四苦八苦しながら、AndroidのJAVA/Kotlin、iOSのSwiftUIを習得して行きます。ともちゃんの備忘録も兼ねています。

Android 11 IntentService 非推奨

Android 11でIntentServiceが非推奨になりました。

JobIntentServiceを使って書き換えました。

 

IntentServiceの例:

class TestService : IntentService("TestService") {
    override fun onHandleIntent(intent: Intent?) {
        // ここに処理を書く

    }

 呼び出し側:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    context.startForegroundService(intent)
} else {
    context.startService(intent)
}

 AndoidMenifest.xml

<service
    android:name=".TestService "
    android:enabled="true"
    android:exported="false" />

 

JobIntentServiceの例:

class TestService : JobIntentService() {

    private val JOB_ID = 1000;

    fun enqueueWork(context: Context, work: Intent) {
        enqueueWork(context, TestService::class.java, JOB_ID, work)
    }

    override fun onHandleWork(intent: Intent) {
        // ここに処理を書く
    }

 呼び出し側:

TestService().enqueueWork(context, intent)

AndoidMenifest.xml

<uses-permission android:name="android.permission.WAKE_LOCK"/>

 

<service
    android:name=".TestService "
    android:permission="android.permission.BIND_JOB_SERVICE"
    android:enabled="true"
    android:exported="false" />