Sobes.tech
Junior — Middle

Ktorý tok služby sa automaticky aktivuje pri spustení systému?

sobes.tech AI

Odpoveď od AI

V Androide neexistuje žiaden vlákno služby, ktoré by sa automaticky aktivovalo pri štarte systému podľa predvoleného nastavenia. Avšak, ak aplikácia zaregistruje BroadcastReceiver na udalosť BOOT_COMPLETED a v ňom spustí službu, táto služba sa môže automaticky spustiť po načítaní systému.

Príklad: aby sa služba spustila po načítaní zariadenia, je potrebné v manifeste uviesť:

<receiver android:name=".BootReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

<service android:name=".MyService" />

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

A v BootReceiver spustiť službu:

class BootReceiver : BroadcastReceiver() {
    override fun onReceive(context: Context, intent: Intent) {
        if (intent.action == Intent.ACTION_BOOT_COMPLETED) {
            val serviceIntent = Intent(context, MyService::class.java)
            context.startService(serviceIntent)
        }
    }
}

Týmto spôsobom sa služba spustí automaticky po načítaní systému, ale iba ak je to špeciálne nakonfigurované.