Stack Exchange'de ve başka yerlerde gördüğüm her şeyden, Android işletim sistemi önyüklendiğinde bir IntentService başlatmak için her şeyi doğru bir şekilde ayarladım. Maalesef önyüklemede başlamıyor ve herhangi bir hata almıyorum. Belki uzmanlar yardımcı olabilir ...
Belirgin:
<?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>
Başlangıç için BroadcastReceiver:
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);
}
}
GÜNCELLEME : Aşağıdaki önerilerin hemen hemen hepsini denedim Log.v("BatteryLogger", "Got to onReceive, about to start service");
ve StartupIntentReceiver'ın onReceive işleyicisi gibi günlük kaydı ekledim ve hiçbir şey günlüğe kaydedilmedi. Yani BroadcastReceiver'a bile ulaşmıyor.
Sanırım APK'yi dağıtıyorum ve doğru bir şekilde test ediyorum, sadece Eclipse'de Debug çalıştırıyorum ve konsol, \ BatteryLogger \ bin \ BatteryLogger.apk adresindeki Xoom tabletime başarıyla yüklediğini söylüyor. Daha sonra test etmek için tableti yeniden başlatıyorum ve ardından DDMS'deki günlüklere bakıyorum ve işletim sistemi ayarlarında Çalışan Hizmetleri kontrol ediyorum. Bunların hepsi doğru mu yoksa bir şey mi kaçırıyorum? Yine, herhangi bir yardım çok takdir edilmektedir.
Log.v("BatteryLogger", "Got to onReceive, about to start service");
OnReceive işleyicisine ekledim ve hiçbir zaman günlüklerde görünmüyor. Yani dinleyici başarısız oluyor (?)