2016-08-05 34 views
0

Ich verwende die folgende Absicht mit einer Benachrichtigung und das Problem ist, dass, wenn die aktuelle Aktivität die gleiche Absicht ist nichts passiert. Wie öffne ich die gleiche Aktivität mit den neuen Daten?So starten Sie die aktuelle Aktivität mit neuen Daten aus Benachrichtigung Klickabsicht auf Android

intent = new Intent(context, PackViewActivity.class); 
           intent.putExtra("pid", pack_id); 
           intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 

Hier sind die Details fromt er Manaifest:

<activity 
     android:name=".PackViewActivity" 
     android:configChanges="orientation|keyboardHidden|screenLayout|screenSize" 
     android:launchMode="singleTask"/> //I've also tried singleInstance with no success. 

Derzeit funktioniert alles einwandfrei, wenn die aktuelle Aktivität PackViewActivity ist. In diesem Fall passiert nichts.

+0

versuchen Sie diese 'Intent.FLAG_ACTIVITY_CLEAR_TOP' anstelle von' CLEAR_TASK' –

+0

Siehe den folgenden Beitrag, sehen Sie, ob dies Ihnen hilft: http://Stackoverflow.com/questions/1397361/how-do-i-restart-an-android -activity – EJoshuaS

+0

@VivekMishra Das hat keinen Unterschied gemacht :(Danke, obwohl – jampez77

Antwort

1

Wie @vivek erwähnt, verwenden Sie Intent.FLAG_ACTIVITY_CLEAR_TOP und entfernen Sie Intent.FLAG_ACTIVITY_CLEAR_TASK. Wenn Ihre Aktivität bereits ausgeführt wird, wird die neue Absicht in onNewIntent() übermittelt. Dort sollten Sie Ihre Absicht lesen Code eingeben. Befreie auch android:launchMode in deiner Beschreibung des Aktivitätsmanifests, da es viele Probleme mit sich bringt.

1

Wenn die erforderliche Aktivität bereits im Vordergrund ist, müssen Sie keine Benachrichtigung senden. Alternativ können Sie die Aktivität als Listener für den Service oder die Aktivitätsklasse registrieren, die die Benachrichtigung über den Notification Manager sendet. Berücksichtigen Sie dann die Benachrichtigung entsprechend.