Dari semua yang saya lihat di Stack Exchange dan di tempat lain, saya sudah menyiapkan semuanya dengan benar untuk memulai IntentService saat booting OS Android. Sayangnya itu tidak dimulai saat boot, dan saya tidak mendapatkan kesalahan apa pun. Mungkin para ahli bisa membantu ...
Nyata:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.phx.batterylogger"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="internalOnly">
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BATTERY_STATS" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<service android:name=".BatteryLogger"/>
<receiver android:name=".StartupIntentReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
</manifest>
BroadcastReceiver untuk Startup:
package com.phx.batterylogger;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class StartupIntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent serviceIntent = new Intent(context, BatteryLogger.class);
context.startService(serviceIntent);
}
}
UPDATE : Saya mencoba hampir semua saran di bawah ini, dan saya menambahkan logging seperti Log.v("BatteryLogger", "Got to onReceive, about to start service");
onReceive handler dari StartupIntentReceiver, dan tidak ada yang dicatat. Jadi itu bahkan tidak sampai ke BroadcastReceiver.
Saya pikir saya menerapkan APK dan menguji dengan benar, hanya menjalankan Debug di Eclipse dan konsol mengatakan itu berhasil menginstalnya ke tablet Xoom saya di \ BatteryLogger \ bin \ BatteryLogger.apk. Kemudian untuk mengujinya, saya mem-boot ulang tablet dan kemudian melihat log di DDMS dan memeriksa Layanan yang Berjalan di pengaturan OS. Apakah ini semua terdengar benar, atau saya melewatkan sesuatu? Sekali lagi, bantuan apa pun sangat dihargai.
Log.v("BatteryLogger", "Got to onReceive, about to start service");
ke penangan onReceive, dan itu tidak pernah muncul di log. Jadi pendengar gagal (?)