BroadcastReceiver-Probleme in Android 3.1+

Ich versuche, Standortdaten mit einer Webdatenbank zu aktualisierenBroadcastReceiver undService.

Ich habe jedoch Probleme damit, mit Android 3.2 auf einem Galaxy Tab 7.0 Plus zu arbeiten.

Die gleiche Anwendung funktioniert sehr gut auf einem Android 2.3.6 Galaxy Note, läuft aber nicht auf dem Tablet. Tatsächlich füge ich das hinzuRECEIVE_BOOT Vorsätzliche Handlung für meinen Empfänger, aber er wird niemals instanziiert, d. hnReceive() Wird nach Abschluss des Startvorgangs nie aufgerufen. Ich frage mich, ob es Updates für das System gibt, die diese Aktion verursachen.

Hier sind meine XML- und Empfängerklassen:

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tests.bootreceiver"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="10"
    android:targetSdkVersion="15" />

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <receiver
        android:name=".BootUpReceiver"
        android:enabled="true"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>

    <service android:name=".MyService" >
    </service>
</application>

BootUpReceiver.java

public class BootUpReceiver extends BroadcastReceiver {

private static int INTERVAL = 1000*15;

@Override
public void onReceive(Context context, Intent intent) {     
    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    PendingIntent pi = PendingIntent.getService(context, 0, new Intent(context, MyService.class), PendingIntent.FLAG_UPDATE_CURRENT);
    am.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), INTERVAL, pi);
}

}

Gibt es einen Grund für die gleiche Code-Arbeit in einem System und nicht auf einem anderen?

Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage