簡(jiǎn)析Activity生命周期-創(chuàng)新互聯(lián)

Activity和所有的生物一樣,也有生老病死這一說,這就是我們將要了解的Activity生命周期的概念。

發(fā)展壯大離不開廣大客戶長(zhǎng)期以來的信賴與支持,我們將始終秉承“誠(chéng)信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠(chéng)服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及成都人造霧等,在網(wǎng)站建設(shè)公司、全網(wǎng)營(yíng)銷推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。

  一:生命周期

  Activity的生命周期如下圖所示:

簡(jiǎn)析Activity生命周期

  Activity的生命周期分為四個(gè)階段

  (1)運(yùn)行態(tài):

  應(yīng)用程序啟動(dòng)之后,若Activity處于屏幕的最前端,可以與用戶進(jìn)行交互的界面,我們說其具有運(yùn)行態(tài)。一個(gè)Activity從創(chuàng)建到運(yùn)行態(tài),需要經(jīng)歷onCreate-->onStart-->onResume三個(gè)階段

  (2)暫停態(tài):

  Activity被置于后臺(tái),但是用戶仍然可見,失去焦點(diǎn),只是暫時(shí)不能進(jìn)行交互,調(diào)用onPause()進(jìn)入暫停態(tài)。進(jìn)入暫停態(tài)的Activity,若想重新回到運(yùn)行態(tài),需要調(diào)用onResume()方法

  (3)停止態(tài):

  Activity被置于后臺(tái),完全被其他Activity擋住,失去焦點(diǎn),不能交互,調(diào)用onStop()進(jìn)入停止態(tài)。若想重新回到運(yùn)行態(tài),需經(jīng)過onRestart()-->onStart()-->onResume()三個(gè)階段,此時(shí)應(yīng)注意實(shí)行onRestart方法之后程序進(jìn)入到的是onStart而不是onCreate。也就是說:onCreate()方法,只被執(zhí)行一次,onResume()無論在什么狀態(tài)均需要執(zhí)行,onStart()旨在創(chuàng)建和onestart()之后執(zhí)行一次。

  (4)終止態(tài):

  Activity被終止,比如點(diǎn)擊“返回”鍵之后,將結(jié)束程序的執(zhí)行,調(diào)用onDestory()方法,進(jìn)入到終止態(tài)。若想重新回到運(yùn)行態(tài),需重新定義Activity。

  二:作用

  清晰的區(qū)分Activity的生命周期,在以后的編程操作中,我們可以清晰的知道哪些操作應(yīng)該在哪些狀態(tài)下運(yùn)行。比如某功能,要求用戶第一次登陸時(shí)要注冊(cè),在此登陸的時(shí)候則直接跳入,這樣的功能我們應(yīng)該在onCreate方法中是實(shí)現(xiàn),因?yàn)閛nCreate在應(yīng)用程序的執(zhí)行中,只運(yùn)行一次。

  三:生命周期的調(diào)用時(shí)機(jī)

  1:調(diào)用時(shí)機(jī)

  這六個(gè)方法,不需要用戶手動(dòng)調(diào)用,由系統(tǒng)自動(dòng)調(diào)用。然而不同的方法調(diào)用的時(shí)機(jī)卻不相同。

  測(cè)試方法:創(chuàng)建工程,在主界面中,重寫六個(gè)方法,添加輸出語句,執(zhí)行程序,按上述幾種狀態(tài),分別測(cè)試程序,看后臺(tái)輸出即可驗(yàn)證結(jié)果。

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        System.out.println("onCreate");
    }
    @Override
    protected void onStart() {
        super.onStart();
        System.out.println("onStart");
    }
    @Override
    protected void onResume() {
        super.onResume();
        System.out.println("onResume");
    }
    @Override
    protected void onRestart() {
        super.onRestart();
        System.out.println("onRestart");
    }
    @Override
    protected void onPause() {
        super.onPause();
        System.out.println("onPause");
    }
    @Override
    protected void onStop() {
        super.onStop();
        System.out.println("onStop");
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        System.out.println("onDestory");
    }
}

  測(cè)試結(jié)果:

   ①程Activity動(dòng),自動(dòng)依次進(jìn)入onCreate-->onStart-->onResume三個(gè)狀態(tài)

   ②按home鍵,Activity全被擋住,依次進(jìn)入到onPause-->onStop兩個(gè)狀態(tài)

   ③按返回鍵,終止程序執(zhí)行,依次進(jìn)入到onPause-->onStop-->onDestory狀態(tài)

   ④長(zhǎng)按home鍵,重新執(zhí)行程序,依次進(jìn)入到onRestart-->onStart-->onResume三個(gè)狀態(tài)

 2: 思考

  單擊A頁(yè)面按鈕實(shí)現(xiàn)從頁(yè)面A到頁(yè)面B的跳轉(zhuǎn),此時(shí)兩個(gè)Activity處于生命周期的什么狀態(tài)下呢?

  解決辦法:

 (1) 創(chuàng)建工程,編寫自定義Act2,在Act2中添加如上代碼

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.act2);
    System.out.println("2----onCreate");
}
@Override
protected void onStart() {
    super.onStart();
    System.out.println("2----onStart");
}
@Override
protected void onResume() {
    super.onResume();
    System.out.println("2----onResume");
}
@Override
protected void onRestart() {
    super.onRestart();
    System.out.println("2----onRestart");
}
@Override
protected void onPause() {
    super.onPause();
    System.out.println("2----onPause");
}
@Override
protected void onStop() {
    super.onStop();
    System.out.println("2----onStop");
}
@Override
protected void onDestroy() {
    super.onDestroy();
    System.out.println("2----onDestory");
}

  (2)在主界面上,添加跳轉(zhuǎn)的實(shí)現(xiàn)及其他生命周期方法

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    System.out.println("1----onCreate");
    findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
                                                   
        @Override
        public void onClick(View arg0) {
            Intent i = new Intent(MainActivity.this,Act2.class);
            startActivity(i);              
        }
    });
}
@Override
protected void onStart() {
    super.onStart();
    System.out.println("1----onStart");
}
@Override
protected void onResume() {
    super.onResume();
    System.out.println("1----onResume");
}
@Override
protected void onRestart() {
    super.onRestart();
    System.out.println("1----onRestart");
}
@Override
protected void onPause() {
    super.onPause();
    System.out.println("1----onPause");
}
@Override
protected void onStop() {
    super.onStop();
    System.out.println("1----onStop");
}
@Override
protected void onDestroy() {
    super.onDestroy();
    System.out.println("1----onDestory");
}

  (3)運(yùn)行工程,點(diǎn)擊按鈕,觀看控制臺(tái),結(jié)果如下:

08-20 13:46:26.842: I/System.out(279): 1----onPause
08-20 13:46:26.875: I/System.out(279): 2----onCreate
08-20 13:46:26.875: I/System.out(279): 2----onStart
08-20 13:46:26.875: I/System.out(279): 2----onResume
08-20 13:46:27.212: I/System.out(279): 1----onStop

  答案:由于此時(shí)A界面正在被B界面覆蓋,所以A界面先進(jìn)入到onpause狀態(tài),隨后B界面啟動(dòng),進(jìn)入onCreate-->onStart-->onResume三個(gè)狀態(tài),之后A界面被完全擋住,A界面到達(dá)onStop狀態(tài)。

  Activity生命周期十分重要,要重點(diǎn)掌握,以后我們會(huì)經(jīng)常用到的,注意產(chǎn)生時(shí)機(jī)與作用,注意區(qū)別哦。。簡(jiǎn)析Activity生命周期

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)頁(yè)標(biāo)題:簡(jiǎn)析Activity生命周期-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://muchs.cn/article28/eiocp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)響應(yīng)式網(wǎng)站、ChatGPT、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司