2016-07-24 60 views
0

Ich bin ein Anfänger und wäre sehr dankbar, wenn mir hier jemand helfen könnte.Was ist die Verwendung von addParentStack und addNextIntent beim Erstellen einer Benachrichtigung?

Ich habe den Android-Dokumentationsführer und Verweis auf einige Klassen hier gelesen, aber ich bin nicht in der Lage, genau zu verstehen, was passiert.

Ich habe meine Abfragen als Kommentare im Code und dann endlich zusammen erwähnt.

In der Android-Dokumentation, während eine einfache Benachrichtigung zu schaffen, das ist der Code, den sie verwenden:

NotificationCompat.Builder mBuilder = 
    new NotificationCompat.Builder(this) 
    .setSmallIcon(R.drawable.notification_icon) 
    .setContentTitle("My notification") 
    .setContentText("Hello World!"); 

// We created an intent here! 
Intent resultIntent = new Intent(this, ResultActivity.class); 

TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 

// Now, what are we exactly doing below line... I don't understand the concept of parentStack 
stackBuilder.addParentStack(ResultActivity.class); 

// What is 'addNextIntent' exactly doing? I mean, there is only one intent right? What is this "Next" Intent? 
stackBuilder.addNextIntent(resultIntent); 
PendingIntent resultPendingIntent = 
    stackBuilder.getPendingIntent(
     0, 
     PendingIntent.FLAG_UPDATE_CURRENT 
    ); 

mBuilder.setContentIntent(resultPendingIntent); 

NotificationManager mNotificationManager = 
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

mNotificationManager.notify(mId, mBuilder.build()); 

Antwort

0

TaskStackBuilder Stack für die Erstellung von Aktivitäten Ihrer App verantwortlich ist. Sie können mehr über sie lesen here.

Wenn App durch den Klick auf Benachrichtigung aktiviert wird, wird der von Ihnen erstellte resultIntent an die onNewIntent() - Methode der ResultActivity-Klasse übergeben. Einige zusätzliche Parameter könnten mit der Absicht übergeben werden - siehe hierzu article für weitere Details.

Die Absicht könnte durch Ihren Code in der überschriebenen onNewIntent in der ResultActivity behandelt werden.