Android四大組件之Activity

Activity可以說是Android應(yīng)用最常見的組件之一,同時(shí)Activity又是Android的四大組件之一,由此可見Activity對(duì)Android學(xué)習(xí)者來說是多么重要。

先看看谷歌官方的API文檔

Activity類的繼承關(guān)系

可見Activity下面還是有很多的子類的。

  • Activity
    • AccountAuthenticatorActivity(實(shí)現(xiàn)賬戶管理界面的Activity)
    • ActivityGroup(這個(gè)類在API 13中已經(jīng)被廢棄,推薦使用Fragment和FragmentManager代替)
      • TabActivity(同樣,此類在API 13中已經(jīng)被棄用,現(xiàn)在推薦用Fragment代替)
    • AliasActivity(別名Activity,后面會(huì)說明)
    • ExpandableActivity(實(shí)現(xiàn)可展開列表的Activity)
    • FragmentActivity(操作Fragment,要使用Fragment,就要繼承此Activity)
      • ActionBarActivity
    • ListActivity
      • LuncherActivity(列表界面的Activity,點(diǎn)擊item,啟動(dòng)相應(yīng)的Activity)
      • PreferenceActivity(實(shí)現(xiàn)程序參數(shù)設(shè)置、存儲(chǔ)界面的Activity)
    • NativeActivity(通過使用這種Activity,可以無(wú)需Java也可以開發(fā)Android程序)

Activity的配置

要使用Activity,那就必須先在AndroidManifest.xml中配置Activity才行。其實(shí),現(xiàn)在的Android Studio的功能強(qiáng)大,在你創(chuàng)建Activity時(shí),Android Studio已經(jīng)自動(dòng)地幫我們完成一系列的事,例如,在AndroidManifest.xml中配置基本的屬性。

<application   
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >  
    <activity        
           android:name=".MainActivity"
           android:label="@string/app_name" >       
           <intent-filter>           
                 <action android:name="android.intent.action.MAIN" />   
                 <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>  
    </activity>
</application>

配置Activity是在<application> </application>標(biāo)簽中配置的。其中有以下幾個(gè)屬性

  • name(名字)
  • icon(圖標(biāo))
  • lable(標(biāo)題)
  • exported(是否可被其他應(yīng)用調(diào)用)
  • lunchMode(加載模式)
  • inter-filter(用于指定該Activity可以響應(yīng)的Intent)

Activity生命周期

引用谷歌官方API文檔的圖

Activity生命周期

可以看到,Activity的啟動(dòng)涉及了onCreate()、onStart()、onResume()、onPause()、onStop()、onRestart()、onDestrory()七個(gè)方法

當(dāng)其他Activity來到前景時(shí),本Activity會(huì)進(jìn)入onPause();
當(dāng)Activity變?yōu)椴豢梢姇r(shí),Activity會(huì)變?yōu)閛nStop();
如果重新進(jìn)入該Activity,會(huì)進(jìn)入onRestart(),
當(dāng)Activity處于完成或者被銷毀的狀態(tài),就會(huì)進(jìn)入onDestroy()。

了解最基本的Activity生命周期,才會(huì)對(duì)Activity有深入一點(diǎn)的了解,同時(shí),這又是Android的基礎(chǔ),面試的時(shí)候如果被問到,支支吾吾答不上的話,真的會(huì)被面試官大大的扣分。把基礎(chǔ)打扎實(shí),才能學(xué)得更深入、更好。

Activity加載模式

  • standrad
  • single Top(不在棧頂就重新創(chuàng)建)
  • single Task(沒有就在棧頂創(chuàng)建;存在有的話,把Activity以上的全部彈出棧,使本Activity處于棧頂部)
  • singleInstance(不存在的話,將會(huì)在全新的棧Task中創(chuàng)建Activity實(shí)例;存在的話,即使不在同一個(gè)應(yīng)用程序,不在同一個(gè)Task,都會(huì)把這個(gè)Activity顯示出來)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 關(guān)于為什么要寫屬于自己的博客,我在前一篇文章中也提到了。主要是歸納自己這一個(gè)時(shí)期所學(xué)到的知識(shí),幫助自己更好的理解,...
    Kevin_Jern閱讀 1,028評(píng)論 0 8
  • Activity的生命周期 Activity的生命周期也就是它所在的進(jìn)程的生命周期。 一個(gè)Activity的啟動(dòng)順...
    _執(zhí)_念__閱讀 454評(píng)論 1 2
  • 有關(guān)Activity介紹的文字實(shí)在是太多了,本著對(duì)Android開發(fā)基礎(chǔ)知識(shí)進(jìn)行查漏補(bǔ)缺的原則,還是將這部分的知識(shí)...
    卑鄙的鹿尤菌閱讀 494評(píng)論 0 1
  • 在一個(gè)復(fù)雜的,有狀態(tài)的系統(tǒng)中,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變,如何通知系統(tǒng),并對(duì)狀態(tài)改變做出相應(yīng)的行為是必需考慮的一個(gè)問...
    bigyuan閱讀 527評(píng)論 0 3
  • 前言 & 視頻體驗(yàn)搶先看 你小時(shí)候一定聽過燈泡不能塞嘴里的訓(xùn)誡,所以才能平安健康的看到這篇評(píng)測(cè)——?jiǎng)e擔(dān)心,這是一篇...
    筆點(diǎn)酷玩閱讀 717評(píng)論 0 2

友情鏈接更多精彩內(nèi)容