2013-01-15 40 views
2

關於當前後退按鈕的最佳做法是什麼?Android加載活動堆棧,vs返回按鈕

許多應用程序在打開它們時(保存onStop和onDestroyed後)保存並恢復整個活動堆棧,以Facebook爲例,當您打開它並且上次放置在照片中時,然後按返回不會關閉Facebook應用程序,它會將您無限帶回,直到您幾天前打開應用程序時所做的第一件事。

這樣的設計慣例是比後退按鈕將有望做一些不同的,我想。它通常用於殺死應用程序或停止主視圖將您帶回設備的啓動屏幕。

Facebook只是一個應用程序的例子。

是否有像Google I/O這樣的開發人員文章或權威來源討論此功能的實用性(恢復活動堆棧並讓後退按鈕遍歷它們)vs其他功能(殺死將用戶退出應用程序的視圖) ?如果是這樣,請在這裏討論並鏈接它們。我希望這不被認爲太主觀,因爲有一個正確使用後退按鈕以及不正確的使用

+0

沒有人知道! :)儘管有一些指導方針,谷歌試圖讓人們追隨每個人做他們認爲最好的事情。混淆每個人... – pumpkee

回答

2

Facebook的應用程序實際上做什麼的是Android的基本默認行爲。這些應用程序對此行爲沒有做任何特別的處理。活動堆棧默認保存。

一個關於它的更多的引用博客是CommonsWare's BACK means Back。基本上,「返回」按鈕的功能意味着它應該帶你到剛纔的上一頁。在Android中,這通常是您剛剛推送的最後一個活動。如果用戶想要離開應用程序,那麼他或她可以按下「HOME」按鈕,並且將總是推動活動堆棧並將用戶帶到主屏幕。

這意味着,在BACK按鈕的功能是完全依賴於有問題的應用程序,但概念是扭轉用戶剛剛做的動作。如果您在遊戲中,則進入子菜單,BACK按鈕應將您帶到頂層菜單。如果您在瀏覽器中,則BACK按鈕可能會將您帶到您正在查看的最後一個網頁。如果您在瀏覽器中並且您位於首頁,則用戶可能希望BACK按鈕關閉應用程序,因爲用戶在打開瀏覽器之前執行的最後一個操作是打開應用程序。如果用戶開始下載,則BACK按鈕可能是取消它。

Facebook和其他人喜歡的一項功能改進可能是考慮在x之後擦除堆棧,因爲用戶可能不記得自從上次使用中斷以來他們做了什麼。這個用例雖然很小。

總體而言,這就是爲什麼人們總是強調可用性測試。當他們按下後退按鈕時,你必須弄清楚99%的應用程序用戶是誰。

+0

+ 1擊敗我的衝牀(並有另一個來源的Back行爲比Android開發網站)。 – Sababado

0

從我個人的經驗,你可以關閉大部分,其使用後擠壓去到以前的屏幕,長按一下後退按鈕。
最好的例子就是瀏覽應用程序,無論是其原生一個或第三方瀏覽器

+0

我沒有看到這實際上,但也不知道它 – CQM

2

您可以在Android開發人員網站上找到您不應更改後退按鈕的預期行爲。讓操作系統處理後退按鈕。

應用程序不重新定義系統圖標的預期功能(例如 後退按鈕)。

那報價從他們的核心應用Quality page拉。

您應該考慮使用向上導航。你可以閱讀更多關於它的設計here

最後,這裏是如何實現各種類型的導航(橫向,祖先[上],時間,後代)的教程。 檢查here

+1

有趣的是,即使Google忽略了這些指南。 – DeeV

+1

儘管向上導航,但可能會出現覆蓋後退按鈕功能的用例。例如,Chrome Mobile在查看網頁時會覆蓋後退按鈕,因爲如果用戶確實不希望返回某個網頁,則該應用會關閉。 – DeeV

+0

在這種情況下,覆蓋是完全有效的。我的回答應該說什麼(更像你的)是後退按鈕應該把用戶帶回預期的地方。如果默認行爲不這樣做,那麼覆蓋並確保它確實如此!我的目的通常不需要太多(如果有的話)改變。 – Sababado

0

我認爲這種行爲取決於應用程序邏輯。 默認情況下,它需要在前一個屏幕上移動(後退堆棧中的活動或片段後退堆棧中保存的片段)。其實這種情況下沒有任何銀彈。只需使用「back-pressed實現」即可。我的觀點是,按下後,應用程序必須以前一個邏輯狀態顯示。