Warum verwenden wir den TaskStackBuilder?
Warum verwenden wir den TaskStackBuilder
beim erstellen einer Benachrichtigung? Ich bekomme nicht die Logik dahinter.
Kann mir bitte jemand erklären.
public void showText(final String text){
Intent intent = new Intent (this, MainActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(intent);
PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new Notification.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(getString(R.string.app_name))
.setAutoCancel(true)
.setPriority(Notification.PRIORITY_MAX)
.setDefaults(Notification.DEFAULT_VIBRATE)
.setContentIntent(pendingIntent)
.setContentText(text)
.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(NOTIFICACTION_ID, notification);
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Angenommen, Sie haben eine E-Mail senden app und Sie haben zwei it-Aktivitäten. Man ist
MainActivity
die E-Mail-Liste und die andere ist für die Anzeige eine E-Mail (EmailViewActivity
). So, jetzt, wenn Sie erhalten eine neue E-Mail zeigen Sie eine Benachrichtigung in der Statusleiste. Und jetzt Sie anzeigen möchten, die E-Mail, wenn ein Benutzer darauf klickt und auch nach der Anzeige der E-Mail, wenn der Benutzer klickt auf zurück-Taste, die Sie wollen, um zu zeigen, das E-Mail-Liste-Aktivität(MainActivity
). Für dieses Szenario können wir verwendenTaskStackBuilder
. Siehe unten Beispiel:Hoffe, Sie verstehen können.
Folgen Sie den nachstehenden urls für mehr details:
http://developer.android.com/reference/android/support/v4/app/TaskStackBuilder.html
http://developer.android.com/guide/components/tasks-and-back-stack.html
http://www.programcreek.com/java-api-examples/index.php?api=android.app.TaskStackBuilder
pendingIntent.send();
Verwenden wir eine
TaskStackBuilder
um sicherzustellen, dass die zurück-Taste wird spielen schön, wenn die Aktivität gestartet wird. DieTaskStackBuilder
können Sie überblick über den Verlauf der Aktivitäten verwendet, indem Sie die zurück-Taste. Im Grunde, wir verwenden es, wenn wir möchten, dass der Benutzer navigieren Sie zu einer anderen Aktivität nach dem drücken der Schaltfläche "zurück".Den anderen Antworten erklärt es schön: Sie verwenden ein pending intent zu senden, die ein user in einem detail-Aktivität, dann werden Sie wollen, verwenden Sie die zurück-Taste, um zurück auf die Haupt-Aktivität. Eine alternative Möglichkeit, um diese ist
Für diese, Sie müssen auch
für die
DetailActivity
imAndroidManifest.xml
., Um eine ordnungsgemäße navigation.
**
Allgemeinen Strömung der navigation in der app MainActivity->DetailActivity
Aber manchmal
Notification
könnte direkt öffnen Sie dieDetailActivity
. In diesem Fall drücken Sie die zurück-Taste inDetailActivity
wird nicht dazu führen Sie zu den `MainActivity. Es ist ein ERWARTETE VERHALTEN. Allerdings können Sie ändern, wenn Sie dies möchten, navigieren Sie zurück zur MainActivity.Wie mache ich es?
1) Hinzufügen android:parentActivityName="com.Beispiel.myApp.MainActivity in Ihrer Aktivität
Dieses feature wurde Hinzugefügt, in Android 4.1. Also, wenn Sie wollen target älteren Geräten. Hinzufügen eines meta-Tags AUCH.
2) Verwenden TaskStackBuilder zum erstellen einer Pending Intent.
Nun diese Pending intent zu erstellen Benachrichtigungen.