2017-12-24 7 views
2

Nun, ich habe eine App, es hat im Grunde drei 3 Klassen, die 1-MainActivity, 2-DetailActivity und 3-Broadcast sind. sogar app war geschlossen broadcast receiver funktioniert und wenn es etwas empfängt, feuert es benachrichtigung. Wenn ich die Benachrichtigung drücke, wird die Klasse Detail geöffnet. Bis zu diesem Punkt gibt es kein Problem, es funktioniert perfekt. aber wenn ich in DetailActivity zurück drücke. es verweist mich auf die Homepage des Telefons. aber App sollte mich zur Hauptklasse führen. nach ca. mich zur Homepage leiten, wenn ich App von Hintergrund gehe apps laufen wird es Hauptklasse beginnt ich docs Codes verwenden die da sind:Fired Benachrichtigung von Broadcastreceiver schließt App, wenn Backpressed

<activity 
    android:name=".MainActivity" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 
<activity 
    android:name=".DetailActivity" 
    android:parentActivityName=".MainActivity"> 
    <meta-data 
     android:name="android.support.PARENT_ACTIVITY" 
     android:value=".MainActivity"/> 
</activity> 

und

int id = 1; 
... 
Intent resultIntent = new Intent(this, DetailActivity.class); 
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
// Adds the back stack 
stackBuilder.addParentStack(DetailActivity.class); 
// Adds the Intent to the top of the stack 
stackBuilder.addNextIntent(resultIntent); 
// Gets a PendingIntent containing the entire back stack 
PendingIntent resultPendingIntent = 
     stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
... 
NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
builder.setContentIntent(resultPendingIntent); 
NotificationManager mNotificationManager = 
    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
mNotificationManager.notify(id, builder.build()); 
+1

Überschreibung der Zurück-Taste drückt Methode, um Ihr gewünschtes Verhalten zu erhalten – MeknessiHamida

+0

was passiert, wenn diese Lösung ist, was ich brauche parentActivityName usw. in einem offenkundigen und Java hinzuzufügen. – mehmet

Antwort

1

Actualy ich die Antwort nach einigem Versuch und Irrtum gefunden ,

PendingIntent.FLAG_UPDATE_CURRENT

nach dieser Zeile i Ändern t funktioniert gut, auch statt ".this" benutze ich getApplicationContext(); für Kontext

PendingIntent resultPendingIntent = 
       stackBuilder.getPendingIntent(
         0, 
         PendingIntent.FLAG_IMMUTABLE 
       ); 
0

als @MeknessiHamida erwähnt. .Sie sollten die OnBackPressed-Methode überschreiben und eine Absicht starten, um Ihre Hauptaktivität zu starten.

0

Sie müssen es nur in der detailsActivity (die wie pro Ihrer Frage) außer Kraft zu setzen: eine Absicht, die Sie auf die Hauptaktivität richtet:

@Override public void onBackPressed() { //Include the code here return; }

Verwandte Themen