Mulakan Perkhidmatan pada But Android
Pernyataan Masalah
Walaupun mengkonfigurasi komponen yang diperlukan dengan teliti, IntentService gagal dimulakan semasa but Android. Tiada mesej ralat dilaporkan, membuatkan anda bingung tentang isu tersebut.
Penyelesaian
Langkah 1: Sahkan Konfigurasi AndroidManifest.xml
Pastikan entri berikut terdapat dalam AndroidManifest.xml anda fail:
<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>
Langkah 2: Pelaksanaan BroadcastReceiver untuk Startup
Dalam StartupIntentReceiver anda, gantikan baris berikut:
context.startService(serviceIntent);
dengan yang berikut:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { context.startForegroundService(serviceIntent); } else { context.startService(serviceIntent); }
Langkah 3: Menambah Pengelogan untuk Nyahpepijat
Untuk menentukan isu ini, tambahkan penyata pengelogan pada pengendali onReceive StartupIntentReceiver anda, contohnya:
Log.v("BatteryLogger", "Got to onReceive, about to start service");
Langkah 4: Menyelesaikan masalah
Atas ialah kandungan terperinci Mengapa Android IntentService Saya Tidak Dimulakan semasa But?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!