如何淺析WPhone、Android的Back與Home鍵,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
站在用戶的角度思考問題,與客戶深入溝通,找到武進(jìn)網(wǎng)站設(shè)計(jì)與武進(jìn)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋武進(jìn)地區(qū)。Back
在導(dǎo)航頁面的制作方面,WPhone比Android在開發(fā)過程中體現(xiàn)地更加人性化,微軟的API中有一個(gè)Go Back方法,能夠使你回到之前的界面,即Back堆棧中的最新條目。如果Back堆棧中沒有任何條目,則此方法將引發(fā)異常,所以在調(diào)用此方法前,始終都要檢查 Can Go Forward。而Android中Activity本身也有一個(gè)棧對象對相應(yīng)的Activity進(jìn)行管理。
但Android程序員必須在onKey事件中對相應(yīng)的事件進(jìn)行監(jiān)聽,判斷按下的鍵是不是Back鍵來決定是否執(zhí)行回退操作。
Android中運(yùn)行的程序無需刻意地去退出,當(dāng)按下手機(jī)的Back鍵的時(shí)候,系統(tǒng)會默認(rèn)調(diào)用程序棧中最上層Activity的Destroy()方法來銷毀當(dāng)前Activity。當(dāng)此Activity又被其它Activity啟動起來的時(shí)候,會重新調(diào)用OnCreate()方法進(jìn)行創(chuàng)建,當(dāng)棧中所有Activity都彈出結(jié)束后,應(yīng)用也就隨之結(jié)束了。如果說程序中存在Service之類的,則可以在恰當(dāng)?shù)奈恢帽O(jiān)聽處理下也就可以了。
接下來通過我的諾基亞手機(jī)的各種操作截圖來說明兩者之間的區(qū)別。
WPhone并不會像Android那樣:只是將目標(biāo)Activity從堆棧中銷毀,但是當(dāng)你按最右邊的菜單鍵鍵(Home鍵右邊,手機(jī)下方總共三個(gè)鍵)時(shí),還是可以看到這個(gè)Activity的。如果你點(diǎn)擊它,又會重新回到Activity的最前面成為當(dāng)前的活動。
這里需要注意,這個(gè)過程中Activity是重新生成的,關(guān)鍵體現(xiàn)在其啟動類的在onCreate()方法中的SavedInstanceState的值此時(shí)是null(而Home鍵情況不同,在后面會進(jìn)行講解)。
而從圖中可以發(fā)現(xiàn),WPhone采取的策略是要么取消回退,要么直接退出應(yīng)用程序。
其實(shí),這也體現(xiàn)在了手機(jī)最下方的按鍵設(shè)計(jì)上,WPhone三個(gè)鍵分別為Back,Home及Search,并沒有菜單鍵。沒錯(cuò),是搜索按鍵,當(dāng)我安裝了Beta(語音輔助軟件)后,點(diǎn)擊Search按鍵就會彈出Beta的服務(wù)界面。
Home
至于Home鍵,WPhone和Android倒是沒有多大的區(qū)別,功能上幾乎一致:點(diǎn)擊后直接回到主界面,將當(dāng)前應(yīng)用壓入Activity堆棧中,此時(shí)的WPhone也不會強(qiáng)制將應(yīng)用關(guān)閉了。
Android點(diǎn)擊菜單鍵出現(xiàn)的效果,WPhone中自然也會有,不然怎么關(guān)閉點(diǎn)擊Home鍵后依然存在的Activity呢。在WPhone中,若想要看到到底有哪些應(yīng)用界面依然存在,方法是長按Back鍵。效果圖如下:
此時(shí),若想將某個(gè)應(yīng)用重新打開,那么只要在其界面區(qū)域單擊即可;若想關(guān)閉,就點(diǎn)擊對應(yīng)界面右上角的圓形叉叉。
代碼
上面提到過,Android在點(diǎn)擊Back和Home鍵之后,讓應(yīng)用重新回到活動狀態(tài)的過程是不一樣的。
這里給出在onCreate()方法中進(jìn)行判斷的代碼:
1 @Override 2 protected void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setContentView(R.layout.activity_main); 5 if (savedInstanceState == null) { 6 Toast.makeText(this, "savedInstanceState is null", Toast.LENGTH_SHORT).show(); 7 } 8 else { 9 Toast.makeText(this, "savedInstanceState is not null", Toast.LENGTH_SHORT).show();10 }11 }
若之前是點(diǎn)擊Back,那么在界面上會顯示"savedInstanceState is null",否則會顯示"savedInstanceState is not null"。
總結(jié)
WPhone是采用上下的豎排方式,不像Android是左右的翻頁樣式。也就是說,添加得越多,這一頁就會越長,在尋找應(yīng)用圖標(biāo)時(shí)就只能上下滾動。
這里有必要再說一下,在應(yīng)用圖標(biāo)的排布方面Android和IOS是相似的,采用頁面左右滑動的設(shè)計(jì);而在重新喚醒或徹底關(guān)閉Acticity堆棧中的應(yīng)用時(shí),WPhone和IOS是相似的,將應(yīng)用界面左右排布,不過兩者的區(qū)別在于:
1、WPhone是長安Back鍵跳出所有應(yīng)用界面,IOS是連續(xù)、快速地點(diǎn)擊兩次Home鍵;
2、WPhone是點(diǎn)擊關(guān)閉按鈕或者向下滑動應(yīng)用界面,IOS是將應(yīng)用界面向上滑動;
但是,也有其有意思的方面,注意上圖中的圖標(biāo)大小。WPhone是允許用戶自定義圖標(biāo)大小的,而且可以將圖標(biāo)在頁面上任意拖動以完成自己想要的布局。
關(guān)于如何淺析WPhone、Android的Back與Home鍵問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。