2 Stimmen

c2dm-Empfänger funktioniert nicht mehr, wenn die Anwendung beendet wurde

In manifest in Anwendung Tag habe ich:

<receiver
    android:name=".MyC2dmReceiver"
    android:permission="com.google.android.c2dm.permission.SEND">
    <!-- Receive the actual message -->
    <intent-filter>
        <action
            android:name="com.google.android.c2dm.intent.RECEIVE" />
        <category
            android:name="com.my.app" />
    </intent-filter>
    <!-- Receive the registration id -->
    <intent-filter>
        <action
            android:name="com.google.android.c2dm.intent.REGISTRATION" />
        <category
            android:name="com.my.app" />
    </intent-filter>
</receiver>

Und mein Empfang hat etwas Ähnliches

@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals("com.google.android.c2dm.intent.REGISTRATION")) {
        handleRegistration(context, intent);
    } else if (intent.getAction().equals("com.google.android.c2dm.intent.RECEIVE")) {
        handleMessage(context, intent);
    }
}

Wenn meine Anwendung eingeschaltet oder im Hintergrund ist onReceive Methode wird ausgelöst, aber wenn ich die Anwendung mit AdvancedTaskKiller onRecived nicht mehr empfangen. Warum?

Warum startet Android meinen Receiver nicht? Brauche ich etwas im Manifest?

1voto

CommonsWare Punkte 950864

Warum?

Wenn Sie Android 3.1 oder eine neuere Version verwenden, liegt das daran, dass Ihre Anwendung in den gestoppten Zustand verschoben wurde. Dies geschieht auch, wenn der Benutzer Sie über die Anwendung "Einstellungen" zwangsstoppt. Solange der Benutzer Ihre Anwendung nicht wieder manuell startet (z. B. durch Tippen auf ein Symbol im Launcher), wird keine Ihrer BroadcastReceivers wird funktionieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X