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é.