中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

【移動開發(fā)】Android中Activity剖析-創(chuàng)新互聯(lián)

  又到了暑假,大四的走了,我們理所當(dāng)然成為了學(xué)校的老大,哈哈!今年不打算回家了,在學(xué)校和校友一起參加比賽做項(xiàng)目。好久就有寫博客的沖動,但老是被各種事情所打擾,今天終于考完試了,于是在安靜的宿舍開始提筆寫起我的第一篇博客。寫博客的目的主要是:總結(jié)以下這一年多來接觸Android開發(fā)中所學(xué)到的知識,以此來督促自己不斷地前進(jìn)學(xué)習(xí)(廢話比較多。。。此段可以忽略)

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),府谷企業(yè)網(wǎng)站建設(shè),府谷品牌網(wǎng)站建設(shè),網(wǎng)站定制,府谷網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,府谷網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
  1. Activity 棧

      Android 是通過一種 Activity 棧的方式來管理 Activity 的,一個(gè) Activity 的實(shí)例的狀態(tài)決定它在棧中的位置。處于前臺的 Activity 總是在棧的頂端,當(dāng)前臺的 Activity 因?yàn)楫惓;蚱渌虮讳N毀時(shí),處于棧第二層的 Activity 將被激活,上浮到棧頂。

      當(dāng)新的 Activity 啟動入棧時(shí),原 Activity 會被壓入到棧的第二層。一個(gè) Activity 在棧中的位置變化反映了它在不同狀態(tài)間的轉(zhuǎn)換。Activity 的狀態(tài)與它在棧中的位置關(guān)系如下圖所示:

    【移動開發(fā)】Android中Activity剖析

  2. Activity的生命周期

  首先看看android developers 網(wǎng)上的activity的生命周期圖:

【移動開發(fā)】Android中Activity剖析

  其實(shí),當(dāng)初我第一次開始看到此圖的時(shí)候,也是一頭霧水,于是就寫了一個(gè)Demo簡單測試一下,結(jié)果就清楚明了了:

package com.tutor.activitydemo;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class ActivityDemo extends Activity {
    private static final String TAG = "ActivityDemo";
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.e(TAG, "---》onCreate()");
    }
    @Override
    protected void onStart() {
        super.onStart();
        Log.e(TAG, "---》onStart()");
    }
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e(TAG, "---》onRestart()");
    }
    @Override
    protected void onResume() {
        super.onResume();
        Log.e(TAG, "---》onResume()");
    }
    @Override
    protected void onPause() {
        super.onPause();
        Log.e(TAG, "---》onPause()");
    }
    @Override
    protected void onStop() {
        super.onStop();
        Log.e(TAG, "---》onStop()");
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e(TAG, "---》onDestroy()");
    }
}

方法說明:

  1.protected void onCreate(Bundle savedInstanceState)一個(gè) Activity 的實(shí)例被啟動時(shí)調(diào)用的第一個(gè)方法。一般情況下,我們都覆蓋該方法作為應(yīng)用程序的一個(gè)入口點(diǎn),在這里做一些初始化數(shù)據(jù)(加載用戶數(shù)據(jù)庫保存數(shù)據(jù),配置信息)、設(shè)置用戶界面等工作。大多數(shù)情況下,我們都要在這里從 xml 中加載設(shè)計(jì)好的用戶界面。

  2.protected void onStart()該方法在 onCreate() 方法之后被調(diào)用,或者在 Activity 從 Stop 狀態(tài)轉(zhuǎn)換為 Active 狀態(tài)時(shí)被調(diào)用。

  3.protected void onResume() 在 Activity 從 Pause 狀態(tài)轉(zhuǎn)換到 Active 狀態(tài)時(shí)被調(diào)用。

  4.protected void onResume()在 Activity 從 Active 狀態(tài)轉(zhuǎn)換到 Pause 狀態(tài)時(shí)被調(diào)用。

  5.protected void onStop()在 Activity 從 Active 狀態(tài)轉(zhuǎn)換到 Stop 狀態(tài)時(shí)被調(diào)用。一般我們在這里保存 Activity 的狀態(tài)信息。

  6.protected void onDestroy()在 Active 被結(jié)束時(shí)調(diào)用,它是被結(jié)束時(shí)調(diào)用的最后一個(gè)方法,在這里一般做些釋放資源,清理內(nèi)存等工作。

打印結(jié)果分析:

 第一組

   1.打開應(yīng)用后執(zhí)行順序:onCreate()->onStart()->onResume()

   2.按Back鍵后結(jié)束這個(gè)應(yīng)用:onPause()->onStop()->onDestory()

 第二組

  3.按Home鍵后:onPause()->onStop()這兩個(gè)方法,這時(shí)候應(yīng)用程序并沒有銷毀;緊接著再次進(jìn)入此程序會執(zhí)行:onRestart()->onStart()->onResume()

  為了更好的理解Activity的生命周期,從網(wǎng)上找到此圖:

【移動開發(fā)】Android中Activity剖析

  從上圖可以看到,最右邊下方的Android機(jī)器人代表啟動一個(gè)Activity,經(jīng)過一系列的操作和過程,經(jīng)過三個(gè)生命周期回調(diào)方法,到達(dá)金字塔的頂層,爬到頂層就可以供用戶操作了。然后從金字塔頂往下,再經(jīng)過三個(gè)生命周期方法,就又到了金字塔的另一邊底層,Activity就銷毀了。但是當(dāng)下金字塔的時(shí)候,只要沒到最下面,都有通道可以回到最頂層。

  1.Activity在onStart方法調(diào)用后,就處于可見狀態(tài)了(visible)

  2.當(dāng)經(jīng)過onPause方法后處于暫停狀態(tài)(Paused),這時(shí)Activity處于半透明狀態(tài),為不可操作的,比如彈出一個(gè)模態(tài)框。這時(shí)Activity不會執(zhí)行任何代碼

  3.Activity在調(diào)用onStop方法后即處于用戶不可見的狀態(tài)了(invisible)

  4.onCreate方法在整個(gè)生命周期只會被調(diào)用一次

  5.自定義Activity繼承Activity類后有沒有需要必須實(shí)現(xiàn)的方法?答案是沒有,但是要想啟動和顯示一個(gè)Activity,就必須實(shí)現(xiàn)onCreate方法并指定布局文件

  6.大部分的清理操作應(yīng)該在onPause和onStop中執(zhí)行,如果在onCreate中開啟了耗時(shí)線程或耗資源的線程操縱,應(yīng)該在onDestroy中殺死線程

 注意:

  系統(tǒng)一般都是在執(zhí)行完onPause和onStop方法后再執(zhí)行onDestroy方法,但是當(dāng)在onCreate方法中調(diào)用了Activity的finish()方法后,比如在onCreate方法里啟動新的Activity并調(diào)用了finish方法,這時(shí)系統(tǒng)會直接調(diào)用onDestroy方法!

就這些吧,東西比較簡單,主要是為了練練博客怎么寫,嘿嘿!

另外有需要云服務(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)用場景需求。

文章題目:【移動開發(fā)】Android中Activity剖析-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://www.rwnh.cn/article16/cegidg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊小程序開發(fā)、標(biāo)簽優(yōu)化、網(wǎng)站收錄、網(wǎng)站設(shè)計(jì)、網(wǎng)站排名

廣告

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

成都網(wǎng)頁設(shè)計(jì)公司
收藏| 临邑县| 容城县| 施甸县| 利川市| 景谷| 偏关县| 仪征市| 沂南县| 自治县| 扶绥县| 同德县| 远安县| 平潭县| 龙胜| 甘肃省| 崇明县| 久治县| 崇阳县| 三明市| 永登县| 枣阳市| 攀枝花市| 前郭尔| 阜城县| 靖州| 元朗区| 牙克石市| 乃东县| 图们市| 镇宁| 九台市| 大冶市| 武川县| 玛多县| 栾城县| 宁夏| 兴海县| 海门市| 武胜县| 浦城县|