日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
AndroidActivity類(lèi)應(yīng)用技巧分享

Android Activity類(lèi)在Android操作系統(tǒng)的應(yīng)用中是常重要的。那么如何才能正確的在應(yīng)用中來(lái)操作這一類(lèi)呢?在一個(gè)應(yīng)用中,每一個(gè)顯示的屏幕都是一個(gè)Activity。所以學(xué)習(xí)Android,必須要對(duì)Activity有一定的了解。在其他論壇中也有一些關(guān)于Activity的介紹,我在這里就想談?wù)勎覍?duì)Activity學(xué)習(xí)的一些看法。首先Activity的生命周期很重要,Activity主要包含六個(gè)方法,分別是onCreate,onStart,onResume,onPause,onStop,onDestory。#t#

目前創(chuàng)新互聯(lián)已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、長(zhǎng)白網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

onCreate和onDestory對(duì)應(yīng)。onStart和onStop對(duì)應(yīng),onResume和onPause對(duì)應(yīng)。

這幾個(gè)函數(shù)大概是這樣定義的,當(dāng)啟動(dòng)一個(gè)Android Activity類(lèi)的時(shí)候,onCreate方法首先會(huì)被啟動(dòng),然后接著是onStart和onResume,也會(huì)啟動(dòng),一般地,等這幾個(gè)函數(shù)都啟動(dòng)完了之后你這個(gè)Activity就可以被顯示出來(lái)了。當(dāng)然我這里說(shuō)的是一般的情況,如果你要是在這三個(gè)函數(shù)初始化的時(shí)候啟動(dòng)了一個(gè)后臺(tái)的Service,那么還要等待ServiceConnection執(zhí)行完畢才能夠被顯示出來(lái),這里可能有人要問(wèn)什么是Service了,在以后我會(huì)介紹它,這里大家就先了解下Service的回調(diào)函數(shù)也會(huì)影響Acitivity的啟動(dòng)就可以了。

這是Activity啟動(dòng)時(shí)會(huì)調(diào)用的三個(gè)函數(shù),在Acitivity銷(xiāo)毀的時(shí)候會(huì)調(diào)用onPause,onStop,onDestory。當(dāng)調(diào)用完onDestory之后,你的Acitivity也就被銷(xiāo)毀完畢了,這時(shí)候你在調(diào)用Activity的isFinishing的時(shí)候,就會(huì)返回true,但是此時(shí)Activity的this指針還可以被使用,如果你在Activity單起一個(gè)線程做其他事情的話,那么上下文變量context指針還是能夠被使用的。

當(dāng)然Android Activity類(lèi)有可能還處于其他狀態(tài),不一定就是被顯示或者被銷(xiāo)毀,很有可能這個(gè)Activity啟動(dòng)了另一個(gè)Activity,這個(gè)時(shí)候前先的那個(gè)Activiy就會(huì)被放到系統(tǒng)的堆棧中,等被啟動(dòng)的Activity返回的時(shí)候,它又重新被顯示出來(lái),這個(gè)流程是這樣的,一個(gè)Activity啟動(dòng)了另外的一個(gè)Activity,那么它就會(huì)調(diào)用onPause函數(shù),進(jìn)入一種停滯的狀態(tài),然后被啟動(dòng)的Activity被銷(xiāo)毀返回后,又會(huì)調(diào)用onResume函數(shù)。

對(duì)于Activity的這種機(jī)制,我感覺(jué)在初始化的工作最好放到一個(gè)自己定義的一個(gè)接口中,因?yàn)橛捎贏ctivity狀態(tài)的改變,你的Activity的Layout就有可能會(huì)被改變。說(shuō)到這里就要談一下什么叫做Layout,每個(gè)Activity的界面的布局就是一個(gè)Layout,每個(gè)Activity都要有這樣一個(gè)布局它才能夠被顯示出來(lái),一般地,我們都會(huì)把一個(gè)Layout放到一個(gè)XML文件當(dāng)中,然后直接調(diào)用Activity的setContentView函數(shù)來(lái)填充這個(gè)Activity,如果Layout不放在xml文件中,也可以用代碼生成一個(gè)動(dòng)態(tài)的Layout,也就是說(shuō)用Activity。

this指針生成一個(gè)Layout。這個(gè)給大家推薦一個(gè)非常好用的工具叫做droiddraw,論壇里就有鏈接,站長(zhǎng)好像發(fā)過(guò)貼。這個(gè)工具非常好用,不用看教程半小時(shí)就能學(xué)會(huì),上面有一些特定的控件,把控件擺好布局后直接能生成xml文件。把這個(gè)xml文件放到項(xiàng)目的res/layout文件夾下面就可以了。生成好Layout文件后,你就要為你程序要用到的一些控件設(shè)定ID,具體怎么設(shè)定大家可以在google的Android主頁(yè)里有,叫g(shù)ettingstarted,那個(gè)寫(xiě)得很明白,我就不跟這里重述了。

接下來(lái)還是談下Android的這幾個(gè)主要的函數(shù),我還有些建議就是在onCreate函數(shù)中盡量少寫(xiě)代碼,把盡肯能多的東西放到onResume和那個(gè)自定義的初始化函數(shù)里去寫(xiě),onResume這個(gè)函數(shù)被調(diào)用的幾率是非常高的,這里大家在模擬器上開(kāi)發(fā)可能沒(méi)有感覺(jué)到onResume的重要性,在真機(jī)上測(cè)試就會(huì)發(fā)現(xiàn),當(dāng)屏幕變黑進(jìn)入等待狀態(tài),然后你手動(dòng)恢復(fù)屏幕變亮?xí)r也會(huì)進(jìn)入onResume狀態(tài),所以我感覺(jué)把一些刷新控件的方法放到onResume函數(shù)中來(lái)做還是非常必要的。onPause,onStop,還有onDestroy函數(shù)都是用來(lái)做一些清理工作的,比如說(shuō)一些變量要被釋放,一些線程要被停滯等等都可以放到這里來(lái)做。

下面我來(lái)總結(jié)一下Android Activity類(lèi)一個(gè)大概的設(shè)計(jì)思路:

首先設(shè)計(jì)一個(gè)方法,這個(gè)方法主要作用就是初始化Activity的控件,進(jìn)行各種條件判斷,對(duì)Acitvity來(lái)進(jìn)行不用的布局初始化,這里舉個(gè)例子來(lái)解釋下為什么要初始化不同的布局,例如你的這個(gè)Activity從SD卡讀取了一些信息,那么當(dāng)你拔出SD卡的時(shí)候這些信息肯定也就沒(méi)有了,那么你就要進(jìn)行另外的一個(gè)布局來(lái)顯示這個(gè)Activity,這個(gè)時(shí)候你就可以重用這個(gè)函數(shù)來(lái)進(jìn)行布局的初始化。

onCreate函數(shù):注冊(cè)你要用到的變量,比如說(shuō)service,receiver,這些變量是無(wú)論你的Activity是在前臺(tái)還是在后臺(tái)都能夠被響應(yīng)到的,然后調(diào)用上面那個(gè)用來(lái)初始化的函數(shù)初始化布局信息。

onStart函數(shù):注冊(cè)一些變量。這些變量必須在Android Activity類(lèi)在前臺(tái)的時(shí)候才能夠被響應(yīng)。

onResume函數(shù):調(diào)用一些刷新UI的函數(shù),每當(dāng)Activity調(diào)用到這里時(shí)就要刷新一下UI各控件的狀態(tài)。

onPause函數(shù):一般是做一些變量的設(shè)置,因?yàn)檫@個(gè)時(shí)候Activity馬上就要切到后臺(tái)處理,可能有些變量就要被釋放掉或者狀態(tài)要做些相應(yīng)的調(diào)整。

onStop函數(shù):反注冊(cè)在onStart函數(shù)中注冊(cè)的變量。

onDestory函數(shù):反注冊(cè)在onCreate函數(shù)中注冊(cè)的變量。

上面談了些Android Activity類(lèi)的最常用的一些方法,當(dāng)然還有很多方法沒(méi)有談到,有很多方法我也沒(méi)有用過(guò),其他方法大家可以參考google的文檔。

接下來(lái)我來(lái)談?wù)凙ctivity中最簡(jiǎn)單的一些通信方法,這里我先定義兩個(gè)名字為方便接下來(lái)的敘述,啟動(dòng)另外一個(gè)Activity的那個(gè)Activity我們稱(chēng)之為主Activity,被啟動(dòng)的那個(gè)Activity我們稱(chēng)之為子Activity。

主Activity和子Acitivity通信的方式有很多種這里介紹兩種最簡(jiǎn)單的方法。

方法一:通過(guò)Intent來(lái)進(jìn)行參數(shù)的傳遞,在Intent中有各種putXXX方法來(lái)存放各種參數(shù),然后在子Activity接收到這個(gè)Intent時(shí)能夠從這個(gè)Intent里取出這個(gè)參數(shù),利用getIntnet()。getXXXExtra()方法就可以了。

方法二:當(dāng)一個(gè)主Activity想從一個(gè)子Activity接受消息時(shí)可以使用StartActivityforResult方法,例如這樣啟動(dòng)一個(gè)Activity,startActivityForResult(i, REQUEST_CODE); 然后在主Activity中的onActivityResult方法對(duì)requestCode進(jìn)行判斷來(lái)對(duì)子Android Activity類(lèi)不同的返回處理不同的情況,另外子Activity也可以利用setResult方法來(lái)設(shè)置主Activity方法中的resultCode,這樣主Activity也可以根據(jù)子Activity的不同的resultCode來(lái)處理不同的情況。


網(wǎng)頁(yè)名稱(chēng):AndroidActivity類(lèi)應(yīng)用技巧分享
標(biāo)題網(wǎng)址:http://www.5511xx.com/article/cdhjicd.html