是這樣的,如上圖,目前task棧中有三個activity,頂端是activity3
問題:從activity3中開啟activity1,我只想將activity1提到棧頂,而不想從新new
我試過singletask和singleInstance都沒打到理想效果。。。
使用singletask時,會將activity2和activity3出棧,,不是想要的結果。。。
使用singleinstance,在從activity3開啟activity1是沒有問題,但是再從現在activity1界面開啟activity2界面後,按返回鍵,則返回到了activity3界面,我想要的是繼續返回到來的那個界面(activity1)
你這種情況如果是在同一個task中,肯定是實現不了你想要的效果,只要不是頂部的task顯示,同一個task中它上面的activity是會出棧的。
所以也就剩下一種每個activity定義一個task的方式。在AndroidManifest.xml中為通過android:taskAffinity這三個actvity定義三個不同的task.
不過實際上你不考慮activity銷毀的方式邏輯上是有些問題的,因為系統也會回收,萬一系統回收了怎麼辦。