我有一系列活動的Android應用程序。其中一項活動(我們稱之爲LoginSettings
)需要登錄OAuth服務。我給了它一個按鈕,通過Intent
啓動網絡瀏覽器。 LoginSettings
不能使用singleTask
或singleInstance
啓動模式,因爲它需要保持在其前任活動的堆棧之上。也就是說,如果用戶從LoginSettings
按下返回,則需要顯示堆棧中的先前活動,並且如果用戶稍後重新啓動我的應用程序,則無法重新啓動以顯示堆棧中的先前活動。打破像singleTask
中間的堆棧沒有用處。如何在用戶在瀏覽器中登錄後顯示相同的Activity實例,而不啓動launchMode =「singleTask」?
我已經使用網絡瀏覽器和自定義回調URL和意圖過濾器的技巧,但因爲我不能使用singleTask
,我不能得到結果到LoginSettings
的同一個實例:它總是創建一個新活動,即使launchMode
是singleTop
。期望的行爲是,在用戶登錄後,瀏覽器窗口消失,用戶看到LoginSettings
,仍然在其後面的堆棧中。
我想使用瀏覽器而不是WebView
進行身份驗證:首先,因爲它顯示用戶他們真正訪問目標網站,而不是給我的應用程序提供他們的密碼;其次,因爲用戶可能已經在瀏覽器中保存了密碼(或者可能已經登錄)。