Dienst beim Android-Boot starten
Problembeschreibung
Trotz sorgfältiger Konfiguration der erforderlichen Komponenten Der IntentService kann beim Android-Start nicht gestartet werden. Es werden keine Fehlermeldungen gemeldet, sodass Sie über das Problem ratlos sind.
Lösung
Schritt 1: AndroidManifest.xml-Konfiguration überprüfen
Stellen Sie sicher, dass die folgenden Einträge in Ihrer AndroidManifest.xml vorhanden sind Datei:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <receiver android:name=".StartupIntentReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
Schritt 2: Implementierung von BroadcastReceiver für Startup
Ersetzen Sie in Ihrem StartupIntentReceiver die folgende Zeile:
context.startService(serviceIntent);
durch Folgendes:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { context.startForegroundService(serviceIntent); } else { context.startService(serviceIntent); }
Schritt 3: Protokollierung hinzufügen zum Debuggen
Um das Problem zu lokalisieren, fügen Sie Protokollierungsanweisungen zum onReceive-Handler Ihres StartupIntentReceivers hinzu, zum Beispiel:
Log.v("BatteryLogger", "Got to onReceive, about to start service");
Schritt 4: Fehlerbehebung
Das obige ist der detaillierte Inhalt vonWarum startet mein Android IntentService beim Booten nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!