中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Android應(yīng)用程序需不需要手動退出?

2019-04-03    來源:阿智的博客

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

不止一次,也不止一個人問過這個問題。我都回答了:不需要。但是,還是要記錄下來。

我們不妨從了解這個系統(tǒng)對于應(yīng)用程序管理的一些內(nèi)部機制開始說明原因。

對于Android系統(tǒng)而言,包含“進程”和“服務(wù)”。“進程”有正在運行的,也有剛剛離開在后臺緩存的。“服務(wù)”是一個無界面、長時間運行的應(yīng)用功能,并且不會輕易被終止。

我們知道,在Android中可以快速通過主頁鍵(home)或者使用返回鍵(←)逐步離開應(yīng)用程序。

主頁鍵:

在當前運行的應(yīng)用程序的任意界面,按下主頁鍵會快速回到手機主屏幕。同時這個應(yīng)用程序的進程將在后臺被暫停并建立緩存,再次啟動應(yīng)用程序時可以方便地返回剛才的界面。(現(xiàn)場被保留)

當然,在你按下主頁鍵回到手機主屏幕時,因設(shè)計需要,也有可能會在后臺運行一個甚至多個進程和服務(wù),以保證這個應(yīng)用程序在后臺是“活的”。

盡管我們知道了后臺會產(chǎn)生各種各樣的“進程”與“服務(wù)”,但你并不用擔心它們會把你的手機拖累。當運行新的應(yīng)用程序發(fā)現(xiàn)內(nèi)存可能不夠用時,系統(tǒng)會自動在后臺釋放部分緩存在后臺的進程,以保障可運行新的應(yīng)用程序。這是一個智能的、良性的供給體系。

返回鍵:

Android系統(tǒng)使用返回鍵來進行屏幕后退,以及關(guān)閉對話框/菜單/屏幕鍵盤。

對于傳統(tǒng)的本地客戶端應(yīng)用程序,每個屏幕可以理解為一個活動(Activity)。通過返回鍵可以快速回退到當前應(yīng)用程序的上一個活動,也可以離開當前應(yīng)用程序打開的新的應(yīng)用程序的某個活動。

所有的活動呈堆棧結(jié)構(gòu)(一種串行形式的數(shù)據(jù)結(jié)構(gòu)),正在運行的活動處在最頂端。當你按下返回鍵,會清除當前活動并恢復(fù)上一個活動。如下圖示例:

(配圖出處:http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html )

如果你連續(xù)按返回鍵,活動一個個被抽離,就像剝洋蔥一樣。

在Android的應(yīng)用程序里,可以通過“意圖”功能,在當前應(yīng)用程序(任務(wù))的某個活動啟動另一個應(yīng)用程序(任務(wù))的某個活動。

比如下圖的示例,在“有道詞典”主界面單擊超鏈接“意見反饋”打開瀏覽器訪問目標網(wǎng)頁:

在目標網(wǎng)頁界面,你可以使用返回鍵快速返回剛才的“有道詞典”主界面。

而接下來這個例子,體驗則是非常糟糕的:

如上圖,在目標網(wǎng)頁想要返回上一個任務(wù)需要歷經(jīng)幾番周折。

一遍又一遍地回退瀏覽器的瀏覽歷史,甚至還要回到瀏覽器的起始頁,然后彈出一個對話框詢問是否要退出……

天哪!我快要瘋掉了。

Android官方對于多個任務(wù)間的活動堆棧處理機制,可以看下面這張圖來解釋:

(配圖出處:http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html )

從圖中我們可以看到,一開始在后臺的“任務(wù)B”的“活動Y”經(jīng)由“任務(wù)A”的“活動2”的一個按鈕抽調(diào)到了前臺,而隨著“任務(wù)B”的活動一個個被剝離,最終整個“任務(wù)B”被結(jié)束了,并且使用返回鍵又回到了“任務(wù)A”的“活動2”。

返回鍵實現(xiàn)了調(diào)用新任務(wù)之后快速返回的便利,而不是只能迂回地回到應(yīng)用程序列表并找到上一個使用的應(yīng)用程序再次啟動。

當所有的活動從堆棧中清除,任務(wù)結(jié)束。也就是說,在應(yīng)用程序的主界面按下返回鍵時,應(yīng)用程序就已經(jīng)退出了。

除非,這個應(yīng)用程序設(shè)計了后臺運行的進程和服務(wù)。比如“新浪微博”,即使你在應(yīng)用程序主界面按下返回鍵退出了,在“程序管理”》“正在運行”界面上仍然可以看到正在運行的進程和服務(wù)。(需通過菜單鍵切換至“顯示當前運行的服務(wù)”視圖)

正如上面提到的,后臺服務(wù)是一個無界面、長時間運行的應(yīng)用功能,并且不會輕易被終止,即便你使用“任務(wù)管理器”。(其實可以在“服務(wù)”界面找到它并且手動停止服務(wù),只不過沒有這個必要性,交給系統(tǒng)自動處理即可。長時間不使用某個任務(wù)時,系統(tǒng)會認為你已經(jīng)不再需要了并且會自動幫你結(jié)束。)

至此,我們已經(jīng)知道為什么Android應(yīng)用程序不需要手動退出了。因為聰明的系統(tǒng)已經(jīng)幫助用戶做了許多事情,包括退出應(yīng)用程序以及恢復(fù)可用內(nèi)存。

受限于Android官方對設(shè)計規(guī)范的態(tài)度,Android并沒有像iOS那樣明文告訴設(shè)計者不需要這個不需要那個。Android應(yīng)用程序的設(shè)計模式也因此而“百花齊放”,很難形成較為統(tǒng)一的體驗。比如本文提到的需不需要手動退出Android應(yīng)用程序的話題,如果在iOS中看到屏幕上有退出應(yīng)用程序的按鈕,是一件搞笑的事情。

無論如何,Android也好iOS也罷,用戶本來就不需要關(guān)注“進程”或“內(nèi)存管理”、“任務(wù)管理”這些東西。用完,離開界面即可,就這么簡單!把用戶不需要關(guān)注的問題拋給用戶,無異于“不想讓小孩玩火,但是又給他一個打火機。”

而設(shè)計師們,該做些什么了。改變吧!

看到這里,也許你會問:既然Android應(yīng)用程序在后臺被掛起暫停了,但是為何開多了應(yīng)用程序手機還是會變慢呢?

一方面:新運行的應(yīng)用程序如果需要較大的內(nèi)存,自然會比較慢。另外,如果手機本身的內(nèi)存過小且CPU不給力,系統(tǒng)自然會因較頻繁地自動結(jié)束進程釋放緩存而導(dǎo)致手機在某些時候運行比較慢的感覺。

也正因為這樣,我們知道了為什么“任務(wù)管理器”會如此流行,甚至成了“裝機必備”。人們用它來快速提前釋放緩存以保證運行新應(yīng)用程序時有足夠的內(nèi)存。當然,隨著CPU頻率越來越高,內(nèi)存越來越大的發(fā)展趨勢,手動清除緩存已經(jīng)慢慢變得不再需要。

另一方面:臨時啟動的后臺服務(wù)可能會導(dǎo)致手機變慢。有些應(yīng)用程序在后臺監(jiān)聽到指定的事件會自動啟動,比如操作系統(tǒng)本身的“Google服務(wù)”,又比如連接USB并且在PC上啟動“豌豆莢手機精靈”,手機上的“豌豆莢守護精靈”會自動啟動。為了避免這種情況,只能建議你有選擇性的安裝應(yīng)用程序了。聰明的軟件需要先進的硬件來支持。

也許你又會問:既然在應(yīng)用程序主界面用返回鍵可以直接退出應(yīng)用程序,可是為什么某Android應(yīng)用程序(尤其是國內(nèi)的)要彈出退出確認對話框呢?

這其實更多的是產(chǎn)品人出于不希望自己的應(yīng)用程序太容易被用戶“退出”,或是擔心“誤操作”的原因,為此給用戶增加一道障礙墻。

瞧瞧我們眼前的PC軟件吧!單擊窗口右上角的 X 圖標后,也有不少軟件在做同樣的事情呢。

毫不客氣地說,這是典型的把責(zé)任推卸給用戶的做法。似乎在警告用戶:“真的要退出了?確定的話我就不管你了!”

我們應(yīng)該盡可能少使用對話框,提供必要的容錯支持。允許用戶犯錯,并給予恢復(fù)的機會。比如你可以允許用戶在按下返回鍵離開應(yīng)用程序后還能再次返回現(xiàn)場。這在很多優(yōu)秀的第三方應(yīng)用程序上均有體現(xiàn),比如Twitter、米聊……

當然,沉浸式的應(yīng)用程序除外。比如視頻正在播放或者游戲正在進行的畫面,應(yīng)盡可能地不要讓用戶犯錯被退出。沉浸式的應(yīng)用程序應(yīng)提供沉浸式的保障,因為游戲或電影進行到一半被退出往往是無法返回現(xiàn)場的。

最后,補充說明:本文所說的“退出”是指退出應(yīng)用程序,而不是指退出帳戶的登錄狀態(tài)。如果你的應(yīng)用程序是需要用戶使用帳號密碼登錄的,那么提供“退出登錄”(或叫“注銷”)的功能是必要的。

文章來源:azero.tsang.blog.163.com 轉(zhuǎn)載請注明出處鏈接。

標簽: Android應(yīng)用 交互設(shè)計 Android系統(tǒng) 

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:模塊標簽(Module Tabs)_Yahoo_Pattern(翻譯)

下一篇:進度條(Progress Bar)_Yahoo_Pattern(翻譯)