我有一個通知,當活動中發生某些事件時向用戶顯示。當我創建通知時,如果我的活動被系統清除,我使用TaskStackBuilder來確保我有backstack活動列表。我的代碼看起來是這樣的:在通知中使用TaskStackBuilder重新創建活動
...
TaskStackBuilder builder = TaskStackBuilder.create(sContext);
builder.addNextIntent(new Intent(context, ActivityA));
builder.addNextIntent(new Intent(context, ActivityB));
builder.addNextIntent(new Intent(context, ActivityC));
PendingIntent pendingIntent =
builder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT)
Notification.Builder builder = new Notification.Builder(context)
.setContentTitle(title))
.setContentText(notificationText)
.setSmallIcon(getNotificationIcon())
.setContentIntent(pendingIntent);
builder.build();
...
所以,打開活動將是最後加入,這就是ActivityC(我不希望它被重新創建)。 我找到的一個解決方案是這樣的:How to make notification resume and not recreate activity? 據說我不應該使用TaskStackBuilder,但不是我想要的。我想使用TaskStackBuilder從通知開始一個活動,而不是重新創建整個活動。
任何解決方案/建議?
請你想要做什麼更詳細的解釋。通常,使用'TaskStackBuilder'將導致任何現有任務被重置(即:清除)以及任務中的活動被重新創建。 –
@DavidWasser我在後臺做了一些工作。它可以持續很長時間,所以用戶將離開活動,並可以通過按通知回到它。同時系統可以清理活動。這就是我使用TaskStackBuilder的原因。 – NixSam
如果您只是想使用通知來允許用戶以任何狀態返回任務,那麼您不需要'TaskStackBuilder'。請參閱http://stackoverflow.com/questions/6575730/notification-to-restore-a-task-rather-than-a-specific-activity或http://stackoverflow.com/a/5502950/769265或http:/ /stackoverflow.com/questions/30544165/starting-app-only-if-its-not-currently-running/30576053#30576053 –