我有一個主要活動被標記爲singleInstance
。然後我打開一個不同的活動的通知,以下是雙方的聲明:singleInstance和TaskStackBuilder的問題
<activity android:name="MainActivity" android:launchMode="singleInstance".....
<activity android:name="some.long.package.from.a.library.NotificationActivity" android:noHistory="true" android:launchMode="singleInstance" android:parentActivityName=".MainActivity">
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity"/>
</activity>
當我創建我修改任務堆棧的通知,以便其插入父活動:
Intent intent = new Intent(context, NotificationActivity.class);
PendingIntent pendingIntent = TaskStackBuilder.create(context)
.addNextIntentWithParentStack(intent)
.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
這一切工作除了一個小問題之外,當我觸摸通知並轉到NotificationActivity
,然後使用後退按鈕或操作欄上的後退時,它將轉到MainActivity
的全新實例。
我知道singleInstance
不是大多數情況下使用的理想啓動模式,但是我有一個應用程序,它有點像網絡瀏覽器,理想情況下用戶應該準確地返回瀏覽器中的哪個位置。我可以保存頁面地址並重新加載它(我將用於最糟糕的情況),但想象一下,如果您正在填寫一個長表單,並且瀏覽器只是因爲您承認了一個通知而已。
那麼有誰能告訴我爲什麼singleInstance
在我修改任務堆棧的掛起意圖後被忽略?
謝謝。