Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 四大組件之Activity詳解,四大activity詳解

四大組件之Activity詳解,四大activity詳解

編輯:關於android開發

四大組件之Activity詳解,四大activity詳解


一、Activity的概要說明

     我看過Activity的源碼,Activity類注釋大概是這樣解釋的:幾乎所有的Activity都是與用戶交互用的,我想用了一個幾乎的意思應該是排除一些純展示界面吧,因此Activity類主要是創建一個窗口來展示我們所做的UI界面,我們用的時候通常是全屏來展示UI界面的,但是Activity也有一些其他的用途,比如當做一個懸浮的視窗來用(在清單文件裡更改Activity的主)。

二、Activity的四種LaunchMode

     設置:<activity android:name=".MainActivity" android:launchMode="standard" />

     1、Standard:把Activity設置成Standard啟動模式的意思是:比如當前顯示的界面是FirstActivity,此時任務棧裡就會有一個FirstActivity實例,接下來由FirstActivity跳轉到FirstActivity,此時任務棧裡就會生成一個新的FirstActivity實例,如果再次跳轉到FirstActivity,任務棧裡又會多出第二個FirstActivity實例,到現在為止任務棧裡一共有三個FirstActivity實例,這時候我們連著按兩次Back鍵,才會返回到第一個FirstActivity,如下圖所示:

     

     2、SingleTop:比如當前界面顯示的界面是FirstActivity,此時任務棧裡就會有一個FirstActivity實例,接下來由FirstActivity跳轉到FirstActivity,這個時候系統發現在棧頂處已經存在一個FirstActivity實例了,所以就不會再新建FirstActivity實例了(如第一個圖),否則就會在棧頂新建它的實例(如第二個圖),從SecondActivity跳轉到FirstActivity的時候,發現雖然任務棧裡存在FirstActivity實例,但是位置不在棧頂,所有就新建了一個FirstActivity實例。

        

     3、SingTask:比如我們當前顯示的界面是FirstActivity,此時任務棧裡就會有一個FirstActivivity實例,接下來由FirstActivity跳轉到SecondActivity,系統發現任務棧裡還沒有SecondActivity實例,於是就會新建一個SecongActivity實例放於棧頂(如下圖的上半部分),接下來我們由SecondActivity跳轉到FirstActivivity,系統會發現在棧裡已經存在FirstActivivity實例了(不管位置在哪),所以就不會在棧裡新建FirstActivity實例的,同時還會把FirstActivity實例上面的對象全不都彈出棧(如下圖的下半部分)。

    intent)          Activity的啟動模式為singleTop/singleTask會執行onNewIntent方法,比如從OneActivity(SingTask模式)跳轉到TwoActivity,再從TwoActivity回來,OneActivity的生命周期就會變成onNewIntent()---->onResart()------>onStart()----->onResume(),也就是說只要OneActivity在任務棧裡,並且又不是第一次進入到OneActivity,就會執行onNewIntent()方法。那麼    (二)onSaveInstanceState(Bundle outState)           在網上查過很多人資料,說這個方法只有在系統內存不夠時,Activity被強制殺死的時候才會被執行,但是這種說法是錯誤,我試了幾種情況,也會執行       onSaveInstanceState方法。           1、Activity正常的跳轉                     2、按Home鍵退到後台的時候                    3、橫豎屏切換的時候,比如我們在看電影的時候,橫豎屏切換的時候,必須保存切換之前看的進度。                    3、onConfigurationChanged(Configuration newConfig)             android:onConfigurationChanged實際對應的是Activity裡的onConfigurationChanged()方法。      在AndroidManifest.xml中添加上訴代碼的含義是表示在改變屏幕方向、彈出軟件盤和隱藏軟鍵盤時,不再去執行onCreate()方法,
     而 是直接執行onConfigurationChanged()。如果不申明此段代碼,按照Activity的生命周期,都會去執行一次 onCreate()方法,而onCreate()方法通常會在顯示之前做        一些初始化工作。所以如果改變屏幕方向這樣的操作都去執行onCreate() 方法,就有可能造成重復的初始化,降低程序效率是必然的了,而且更有可能因為重復的初始化而導     致數據的丟失。這是需要千萬避免的。                                                                                                                                   

        

    

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved