Rumah > Java > javaTutorial > Mengapa Android IntentService Saya Tidak Dimulakan semasa But?

Mengapa Android IntentService Saya Tidak Dimulakan semasa But?

Barbara Streisand
Lepaskan: 2024-11-30 19:58:16
asal
878 orang telah melayarinya

Why Doesn't My Android IntentService Start on Boot?

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>
Salin selepas log masuk

Langkah 2: Pelaksanaan BroadcastReceiver untuk Startup

Dalam StartupIntentReceiver anda, gantikan baris berikut:

context.startService(serviceIntent);
Salin selepas log masuk

dengan yang berikut:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    context.startForegroundService(serviceIntent);
} else {
    context.startService(serviceIntent);
}
Salin selepas log masuk

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");
Salin selepas log masuk

Langkah 4: Menyelesaikan masalah

  • Sahkan Alokasi: Pastikan APK digunakan dan dipasang dengan betul pada peranti anda.
  • Semak Log: Periksa log peranti dalam DDMS atau tetapan OS untuk mengesahkan sama ada perkhidmatan sedang dimulakan.
  • Fokus pada Penerima Siaran: Sahkan bahawa BroadcastReceiver sedang menerima niat BOOT_COMPLETED dan memulakan perkhidmatan.
  • Pelaksanaan Alternatif: Jika langkah di atas tidak menyelesaikan isu, pertimbangkan untuk menggunakan contoh yang disediakan dalam Jawapan, yang menggabungkan perkhidmatan , BroadcastReceiver dan aktiviti untuk memulakan perkhidmatan semasa but.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan