日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

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

Android Activity類在Android操作系統(tǒng)的應(yīng)用中是常重要的。那么如何才能正確的在應(yīng)用中來操作這一類呢?在一個(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è)網(wǎng)站設(shè)計(jì)、長白網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(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類的時(shí)候,onCreate方法首先會(huì)被啟動(dòng),然后接著是onStart和onResume,也會(huì)啟動(dòng),一般地,等這幾個(gè)函數(shù)都啟動(dòng)完了之后你這個(gè)Activity就可以被顯示出來了。當(dāng)然我這里說的是一般的情況,如果你要是在這三個(gè)函數(shù)初始化的時(shí)候啟動(dòng)了一個(gè)后臺(tái)的Service,那么還要等待ServiceConnection執(zhí)行完畢才能夠被顯示出來,這里可能有人要問什么是Service了,在以后我會(huì)介紹它,這里大家就先了解下Service的回調(diào)函數(shù)也會(huì)影響Acitivity的啟動(dòng)就可以了。

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

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

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

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

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

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

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

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

onStart函數(shù):注冊(cè)一些變量。這些變量必須在Android Activity類在前臺(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類的最常用的一些方法,當(dāng)然還有很多方法沒有談到,有很多方法我也沒有用過,其他方法大家可以參考google的文檔。

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

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

方法一:通過Intent來進(jìn)行參數(shù)的傳遞,在Intent中有各種putXXX方法來存放各種參數(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)行判斷來對(duì)子Android Activity類不同的返回處理不同的情況,另外子Activity也可以利用setResult方法來設(shè)置主Activity方法中的resultCode,這樣主Activity也可以根據(jù)子Activity的不同的resultCode來處理不同的情況。


網(wǎng)站欄目:AndroidActivity類應(yīng)用技巧分享
本文來源:http://www.dlmjj.cn/article/cdhjicd.html