Junior — Middle
Który strumień usługi jest automatycznie aktywowany podczas uruchamiania systemu?
sobes.tech AI
Odpowiedź od AI
W Androidzie nie ma wątku Service, który byłby automatycznie aktywowany podczas uruchomienia systemu domyślnie. Jednakże, jeśli aplikacja zarejestrowała BroadcastReceiver na zdarzenie BOOT_COMPLETED i w nim uruchamia Service, to ten Service może automatycznie się uruchomić po załadowaniu systemu.
Przykład: aby serwis uruchamiał się po starcie urządzenia, należy w manifeście podać:
<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 w BootReceiver uruchomić serwis:
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)
}
}
}
W ten sposób, serwis uruchamia się automatycznie po załadowaniu systemu, ale tylko jeśli jest to specjalnie skonfigurowane.