可以說你有一個網絡應用相關的Android應用,需要用戶登錄才能使用它。用戶在登錄屏幕活動中登錄,然後繼續進行其他活動。每次用戶啓動一個活動時,應用程序都會再次檢查他的登錄憑證(憑證存儲在某個中央數據庫中)。如何踢用戶登錄屏幕活動通過堆棧中的所有其他應用程序活動?
隨着用戶從一個活動跳轉到另一個活動,讓我們假裝用戶的登錄憑證從服務中被吊銷。用戶下次訪問活動時,該應用會看到他不再有權限訪問該應用。現在應用程序應該將用戶踢回登錄屏幕活動。
但是由於應用程序在用戶使用應用程序時已經創建了一堆活動,因此您如何獲得登錄屏幕。你是否殺死/銷燬所有活動,直到你到達登錄屏幕活動(應該是應用程序的堆棧底部的活動)?
還是你開始一個新的登錄屏幕活動,並直接去那?
或者我應該通過FLAG_ACTIVITY_CLEAR_TOP
呼叫登錄屏幕活動通過意圖?
用戶第二次登錄後(可以說他已經恢復了憑據),如果活動現在是堆棧中的唯一一個,那麼按下後退按鈕將使他退出應用程序,相反,在撤銷他的證書之前回到他正在做的事情上。什麼是最好的方法呢?
對於你的問題沒有一個答案。它非常依賴於很多設計決策。 – Falmarri 2012-04-03 21:39:32
是的,現在我意識到了。我不確定是否有最佳做法,人們使用這個或沒有。 – 2012-04-04 15:04:05