我想了解當您按下後退按鈕時會發生什麼。系統如何操作後臺堆棧?從哪裏獲得頂部窗口的窗口句柄?
我查看了PhoneWindowManager.java
,但找不到我在找的東西。有人曾經見過這個代碼嗎?在AOSP代碼中如何實現導航欄上的後退按鈕?
0
A
回答
1
你所說的「操作欄中的後退按鈕」稱爲「上按鈕」。兩者之間的區別在文章中有詳細解釋:Navigation with Back and Up。
簡而言之:
- 向上按鈕用於基於屏幕之間的層次關係的應用程序內進行導航。
- 系統後退按鈕用於按照反向時間順序瀏覽用戶最近使用的屏幕歷史記錄。它通常基於屏幕之間的時間關係,而不是應用程序的層次結構。
當您從另一個應用程序導航到應用程序時,區別是很好的市場。例如:您正在通過郵箱中的鏈接訪問應用程序的Google Play屏幕。一旦谷歌播放:
- 最多將帶你到谷歌Play的家應用
- 返回,將帶你回到Gmail應用程序
0
那麼,這將帶你回去,因爲像後退按鈕會:
super.onBackPressed();
0
onBackPressed()的文檔說Back按鈕只是簡單地結束當前活動。不需要回棧操作。
在更深層次上,Android確實在Task之內維護了一堆活動,並且它可以確定在頂部活動完成時要顯示的活動。但是這些機制存在於本機代碼中,可能超出了你想要做的事情的範圍。據我所知,從Java可以做到的最好的方法是使用RunningTaskInfo(源代碼here),這將暴露當前任務中的「基本」和「頂部」活動。
如果您嘗試實施複雜的應用導航,您可以使用a number of flags來控制將活動放置在堆棧上的方式。
相關問題
- 1. 如何在TableViewController中實現後退導航按鈕?
- 2. 定製後退按鈕在導航欄
- 3. 如何將導航欄UIBarButtonItem按鈕更改爲導航欄後退按鈕?
- 4. 如何在導航欄上放置後退按鈕
- 5. 在iPhone應用程序的導航欄上實現後退按鈕
- 6. 如何更改導航欄上後退按鈕的圖像?
- 7. 後退按鈕不會出現在導航欄中
- 8. 後退按鈕突然停止出現在導航欄中
- 9. 按鈕後退導航欄崩潰
- 10. Android禁止導航欄後退按鈕
- 11. 導航欄後退按鈕方法
- 12. 添加後退按鈕到導航欄
- 13. Xamarin導航欄後退按鈕單擊
- 14. 導航欄後退按鈕動作也
- 15. 導航欄後退按鈕顏色
- 16. ionic2導航欄後退按鈕CSS
- 17. 導航欄中的後退按鈕不會出現
- 18. 如何在uiviewcontroller中嚮導航欄添加後退按鈕?
- 19. 如何在導航欄中添加後退按鈕?
- 20. 如何在導航欄中創建後退按鈕片段?
- 21. 如何在導航欄中創建後退按鈕
- 22. 在導航欄上的後退按鈕旁邊添加欄按鈕項目
- 23. 如何更改導航欄中的後退按鈕顏色?
- 24. 如何禁用導航欄中的後退按鈕
- 25. 使用EarlGrey按導航欄上的後退按鈕
- 26. 未在導航欄上做的後退按鈕
- 27. 如何從導航欄中刪除後退按鈕
- 28. 自定義繪製後退按鈕在iPhone上導航欄
- 29. 後退按鈕不顯示在導航欄上。 Xamarin
- 30. 如何從Xcode中的導航欄上的後退按鈕中刪除文本?
我想知道Android如何處理系統後退按鈕。你如何真正到達後面堆棧的previos活動? – coredump