日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

你了解Android中的Activity吗?

發布時間:2023/12/18 Android 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 你了解Android中的Activity吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 一、何為Activity
    • 二、Activity的生命周期
    • 三、Activity/ActionBarActivity/AppCompatActivity的區別:

一、何為Activity

??Android應用中通常由一個或者多個基本組件組成,我們平時看到的Android應用中最常用的組件就是Activity。Activity、BroadcastReceiver、ContentProvider和Service合稱Android的四大組件。Activity是Android的四大組件中最直觀的一個,可以狹義地理解為Activity是與用戶交互的界面,可以處理與用戶交互的事件。簡單說就是看到的界面。常見的 Activity 類型有 ListActivity,FragmentActivitiy,TabAcitivty 等。當然開發中可根據自己的功能設計自己的公共基類: BaseActivity。
在我們創建完一個Android工程后會有以下MainActivity視圖:

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);} }

??可以看到,默認實現的onCreate()方法非常簡單,就是調用了父類的onCreate()方法。
Activity主要負責于和用戶交互,而談及與用戶交互則不得不說Android中的View組件了。View組件是所有UI控件、容器控件的基類,可以說View組件就是Android應用中用戶實實在在看到的部分。但View組件需要放到容器組件中,或者使用Activity將它顯示出來。如果我們需要通過某個Activity把指定的View顯示出來,調用Activity的setContentView()方法即可。

setContentView()方法可接受一個View對象作為參數,例如:

//創建一個線性布局管理器 LinearLayout layout = new LinearLayout(this); //設置該Activity顯示Layout setContentView(layout);

??這兩行代碼創建了一個LinearLayout對象(它是 ViewGroup的子類,ViewGroup又是View的子類),接著調用Activity的setContentView(layout)把這個布局管理器顯示出來。
??我們經常使用setContentView()方法接受一個布局管理器資源的ID作為參數,例如:

//設置該Activity顯示main.xml文件定義的View setContentView(R.layout.activity_main);

??在初始代碼中我們可以看到這一行代碼:

setContentView(R.layout.activity_main);

??這一行代碼主要是說明當前activity引用的是activity_main布局文件,在Android項目中添加的任何資源都會在R文件中生成一個相應的資源id,因此我們的activity_main.xml布局文件的id現在應該是已經添加到R文件中了。在代碼中引用布局文件的方法你也看到了,只需要調用R.layout.activity_main就可以得到activity_main.xml布局的id,然后將這個值傳入setContentView()方法即可。
??注意:這里我們使用的R是我們工程包下面的R文件,AndroidSDK還會自動提供一個android包下的R文件,注意兩者是有區別的,別引用錯了。

二、Activity的生命周期

??官方文檔中對Activity的生命周期有個比較經典圖,如下圖一所示:

??相信不少人已經看過這個流程圖,在此就不多做贅述,我簡單的說說這幾個過程:
1.啟動Activity:系統會先調用onCreate方法,然后調用onStart方法,最后調用onResume,Activity進入運行狀態。
2.當前Activity被其他Activity覆蓋其上或被鎖屏:系統會調用onPause方法,暫停當前Activity的執行。
3.當前Activity由被覆蓋狀態回到前臺或解鎖屏:系統會調用onResume方法,再次進入運行狀態。
4.當前Activity轉到新的Activity界面或按Home鍵回到主屏,自身退居后臺:系統會先調用onPause方法,然后調用onStop方法,進入停滯狀態。
5.用戶后退回到此Activity:系統會先調用onRestart方法,然后調用onStart方法,最后調用onResume方法,再次進入運行狀態。
6.當前Activity處于被覆蓋狀態或者后臺不可見狀態,即第2步和第4步,系統內存不足,殺死當前Activity,而后用戶退回當前Activity:再次調用onCreate方法、onStart方法、onResume方法,進入運行狀態。
7.用戶退出當前Activity:系統先調用onPause方法,然后調用onStop方法,最后調用onDestory方法,結束當前Activity。
這就是一次完整的常規activity生命周期。

??從某種角度看,Activity為Android應用提供了可視化用戶界面,如果該Android應用需要多個用戶界面,那么這個Android應用將會包含多個Activity,多個Activity組成Activity棧,當前活動的Activity位于棧頂。

三、Activity/ActionBarActivity/AppCompatActivity的區別:

??在開始講解創建Activity之前要說下這三個的一個區別: Activity就不用說啦,后面這兩個都是為 了低版本兼容而提出的提出來的,他們以前都在v7包下,現AppCompatActivity在androidx包 下, ActionBarActivity已被廢棄,從名字就知道,ActionBar~,而在5.0后,被Google棄用了, 現在用 ToolBar…而我們現在在Android Studio創建一個Activity默認繼承的會是: AppCompatActivity! 當然你也可以只寫Activity,不過AppCompatActivity給我們提供了一些新的 東西而已! 兩個選一個,Just you like。

總結

以上是生活随笔為你收集整理的你了解Android中的Activity吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。