如何淺析WPhone、Android的Back與Home鍵,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
臨邑網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
Back
在導(dǎo)航頁(yè)面的制作方面,WPhone比Android在開(kāi)發(fā)過(guò)程中體現(xiàn)地更加人性化,微軟的API中有一個(gè)Go Back方法,能夠使你回到之前的界面,即Back堆棧中的最新條目。如果Back堆棧中沒(méi)有任何條目,則此方法將引發(fā)異常,所以在調(diào)用此方法前,始終都要檢查 Can Go Forward。而Android中Activity本身也有一個(gè)棧對(duì)象對(duì)相應(yīng)的Activity進(jìn)行管理。
但Android程序員必須在onKey事件中對(duì)相應(yīng)的事件進(jìn)行監(jiān)聽(tīng),判斷按下的鍵是不是Back鍵來(lái)決定是否執(zhí)行回退操作。
Android中運(yùn)行的程序無(wú)需刻意地去退出,當(dāng)按下手機(jī)的Back鍵的時(shí)候,系統(tǒng)會(huì)默認(rèn)調(diào)用程序棧中最上層Activity的Destroy()方法來(lái)銷毀當(dāng)前Activity。當(dāng)此Activity又被其它Activity啟動(dòng)起來(lái)的時(shí)候,會(huì)重新調(diào)用OnCreate()方法進(jìn)行創(chuàng)建,當(dāng)棧中所有Activity都彈出結(jié)束后,應(yīng)用也就隨之結(jié)束了。如果說(shuō)程序中存在Service之類的,則可以在恰當(dāng)?shù)奈恢帽O(jiān)聽(tīng)處理下也就可以了。
接下來(lái)通過(guò)我的諾基亞手機(jī)的各種操作截圖來(lái)說(shuō)明兩者之間的區(qū)別。
WPhone并不會(huì)像Android那樣:只是將目標(biāo)Activity從堆棧中銷毀,但是當(dāng)你按最右邊的菜單鍵鍵(Home鍵右邊,手機(jī)下方總共三個(gè)鍵)時(shí),還是可以看到這個(gè)Activity的。如果你點(diǎn)擊它,又會(huì)重新回到Activity的最前面成為當(dāng)前的活動(dòng)。
這里需要注意,這個(gè)過(guò)程中Activity是重新生成的,關(guān)鍵體現(xiàn)在其啟動(dòng)類的在onCreate()方法中的SavedInstanceState的值此時(shí)是null(而Home鍵情況不同,在后面會(huì)進(jìn)行講解)。
而從圖中可以發(fā)現(xiàn),WPhone采取的策略是要么取消回退,要么直接退出應(yīng)用程序。
其實(shí),這也體現(xiàn)在了手機(jī)最下方的按鍵設(shè)計(jì)上,WPhone三個(gè)鍵分別為Back,Home及Search,并沒(méi)有菜單鍵。沒(méi)錯(cuò),是搜索按鍵,當(dāng)我安裝了Beta(語(yǔ)音輔助軟件)后,點(diǎn)擊Search按鍵就會(huì)彈出Beta的服務(wù)界面。
Home
至于Home鍵,WPhone和Android倒是沒(méi)有多大的區(qū)別,功能上幾乎一致:點(diǎn)擊后直接回到主界面,將當(dāng)前應(yīng)用壓入Activity堆棧中,此時(shí)的WPhone也不會(huì)強(qiáng)制將應(yīng)用關(guān)閉了。
Android點(diǎn)擊菜單鍵出現(xiàn)的效果,WPhone中自然也會(huì)有,不然怎么關(guān)閉點(diǎn)擊Home鍵后依然存在的Activity呢。在WPhone中,若想要看到到底有哪些應(yīng)用界面依然存在,方法是長(zhǎng)按Back鍵。效果圖如下:
此時(shí),若想將某個(gè)應(yīng)用重新打開(kāi),那么只要在其界面區(qū)域單擊即可;若想關(guān)閉,就點(diǎn)擊對(duì)應(yīng)界面右上角的圓形叉叉。
代碼
上面提到過(guò),Android在點(diǎn)擊Back和Home鍵之后,讓?xiě)?yīng)用重新回到活動(dòng)狀態(tài)的過(guò)程是不一樣的。
這里給出在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,那么在界面上會(huì)顯示"savedInstanceState is null",否則會(huì)顯示"savedInstanceState is not null"。
總結(jié)
WPhone是采用上下的豎排方式,不像Android是左右的翻頁(yè)樣式。也就是說(shuō),添加得越多,這一頁(yè)就會(huì)越長(zhǎng),在尋找應(yīng)用圖標(biāo)時(shí)就只能上下滾動(dòng)。
這里有必要再說(shuō)一下,在應(yīng)用圖標(biāo)的排布方面Android和IOS是相似的,采用頁(yè)面左右滑動(dòng)的設(shè)計(jì);而在重新喚醒或徹底關(guān)閉Acticity堆棧中的應(yīng)用時(shí),WPhone和IOS是相似的,將應(yīng)用界面左右排布,不過(guò)兩者的區(qū)別在于:
1、WPhone是長(zhǎng)安Back鍵跳出所有應(yīng)用界面,IOS是連續(xù)、快速地點(diǎn)擊兩次Home鍵;
2、WPhone是點(diǎn)擊關(guān)閉按鈕或者向下滑動(dòng)應(yīng)用界面,IOS是將應(yīng)用界面向上滑動(dòng);
但是,也有其有意思的方面,注意上圖中的圖標(biāo)大小。WPhone是允許用戶自定義圖標(biāo)大小的,而且可以將圖標(biāo)在頁(yè)面上任意拖動(dòng)以完成自己想要的布局。
關(guān)于如何淺析WPhone、Android的Back與Home鍵問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。