Junior — Middle
Ποιο ρεύμα υπηρεσίας ενεργοποιείται αυτόματα κατά την εκκίνηση του συστήματος;
sobes.tech AI
Απάντηση από AI
Στο Android δεν υπάρχει ρεύμα υπηρεσίας που ενεργοποιείται αυτόματα κατά την εκκίνηση του συστήματος από προεπιλογή. Ωστόσο, εάν μια εφαρμογή καταχωρίσει έναν BroadcastReceiver για το γεγονός BOOT_COMPLETED και σε αυτό ξεκινά μια Υπηρεσία, τότε αυτή η Υπηρεσία μπορεί να ξεκινήσει αυτόματα μετά τη φόρτωση του συστήματος.
Παράδειγμα: για να ξεκινά η υπηρεσία μετά την εκκίνηση της συσκευής, πρέπει να δηλωθεί στο μανιφέστο:
<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" />
Και στο BootReceiver, ξεκινήστε την υπηρεσία:
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)
}
}
}
Έτσι, η υπηρεσία ξεκινά αυτόματα μετά τη φόρτωση του συστήματος, αλλά μόνο αν έχει ρυθμιστεί ειδικά.