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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android之路-------Activity的详解

發(fā)布時(shí)間:2025/5/22 Android 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android之路-------Activity的详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

  由于接近放假,公司在趕項(xiàng)目所以前段LP比較忙,沒什么時(shí)間總結(jié)和寫博客,只是準(zhǔn)備睡覺的時(shí)候看看書,每天看的不算多,大概10多頁左右吧,不過每天堅(jiān)持如此的話那也是一個(gè)龐大的數(shù)字。

  今天LP的任務(wù)完成了,在領(lǐng)導(dǎo)還沒分配任務(wù)之前再發(fā)布一篇關(guān)于Activity的博文..........

  上一篇跟大家分享了Android的發(fā)展史、系統(tǒng)框架、還有Android的四大組件,下面LP就為大家介紹下四大組件之一的Activity。

  知道了Android的歷史之后,有沒有讓Android那種打不死的精神打動(dòng)了,如果有的話就趕緊動(dòng)身來學(xué)Android吧..

  行了,廢話不多說 ? ? Let's go

目錄

  • 活動(dòng)(Activity)
  • activity誰來管?
  • 它是怎么個(gè)生老病死的?
  • 啟動(dòng)模式
  • 如何去使用它?
  • 兄弟間該如何進(jìn)行交互?

Android四大組件之一【Activity】

  說到活動(dòng)相信就算沒有android基礎(chǔ)的人都知道活動(dòng)是個(gè)什么東西,因?yàn)樗鼤?huì)經(jīng)常出現(xiàn)在我們的身邊,但是說到Activity,那就不一定了,不過懂一點(diǎn)英語的人直接翻譯過來也知道是活動(dòng)的意思,其實(shí)Android的活動(dòng)和現(xiàn)實(shí)生活中的活動(dòng)很相似,也可以理解為現(xiàn)實(shí)生活中的活動(dòng),我們正式開始吧。

  說到Android的Activity,它到底是個(gè)什么東西呢? 它就是Android系統(tǒng)中的一個(gè)組件,專門負(fù)責(zé)與用戶交互的,用戶看到的每一個(gè)界面就是一個(gè)活動(dòng)。

  在Android中,Activity有基本的四種狀態(tài)

    1.運(yùn)行狀態(tài)  active/running

        處于屏幕的最前端或者正在和用戶交互著,稱為運(yùn)行狀態(tài)/激活狀態(tài)

    2.暫停狀態(tài)  Paused

        當(dāng)前activity失去焦點(diǎn),被一個(gè)窗口或者非全屏的東西遮住一點(diǎn)點(diǎn)和被另一個(gè)透明的activity覆蓋的時(shí)候,稱為暫停狀態(tài)

    3.停止?fàn)顟B(tài)  Stoped

        當(dāng)前activity完全看不到了,稱為停止?fàn)顟B(tài)

    4.殺死狀態(tài)  Killed

        當(dāng)activity處于“暫停狀態(tài)” Or “停止?fàn)顟B(tài)”,這時(shí)候系統(tǒng)就可以對(duì)當(dāng)前的activity從內(nèi)存中刪除或者終止它的進(jìn)程,還有就是當(dāng)系統(tǒng)內(nèi)存不足的時(shí)候也會(huì)執(zhí)行前者動(dòng)作。

看電影

如果看完上面的還不能理解,那么你就可以理解為看電影,那部電影就是當(dāng)前的activity.?

    1.電影正在播放的時(shí)候,稱為運(yùn)行狀態(tài)

    2.當(dāng)我們點(diǎn)擊暫停按鈕的時(shí)候,屏幕不是變暗了嗎?或者出現(xiàn)一個(gè)小廣告,這個(gè)就可以理解為被另一個(gè)全屏透明的東西遮住和非全屏的小廣告,這個(gè)就是暫停狀態(tài)了

    3.看港劇看多了,不想看了,就換部日本動(dòng)作片來看,這時(shí)港劇不是看不到了嗎?或者電腦直接黑屏了,反正看不到港劇,也就是當(dāng)前的activity。這些都可以稱為 停止?fàn)顟B(tài)

    4.就是不想看電影了,直接手動(dòng)把播放器關(guān)掉,處于暫停或者停止?fàn)顟B(tài),內(nèi)存不足的時(shí)候系統(tǒng)會(huì)自動(dòng)關(guān)掉播放器

還不明白話,先不用鉆牛角尖,先往下看,往后會(huì)慢慢的明白的.........

Activity該誰來管?

activity是由棧來管理的,先進(jìn)后出,后進(jìn)先出。每一個(gè)用戶能看到的activity都是處于棧頂?shù)?#xff0c;當(dāng)內(nèi)存不足的時(shí)候,棧里面最底下的那個(gè)activity就會(huì)被回收,直接上圖最明了

?它又是怎么個(gè)生老病死的呢?(生命周期)

  這個(gè)我就不多說了,直接開始..?

  官方生命周期圖,LP動(dòng)了點(diǎn)手腳:

  

圖看完了,緊接著是代碼:

1 package com.leo.writeblog; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.util.Log; 6 7 public class MainActivity extends Activity { 8 private final String TAG = "MainActivity"; 9 @Override 10 protected void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 setContentView(R.layout.activity_main); 13 } 14 @Override 15 protected void onStart() { 16 super.onStart(); 17 Log.i(TAG, "onStart"); 18 } 19 @Override 20 protected void onResume() { 21 super.onResume(); 22 Log.i(TAG, "onResume"); 23 } 24 @Override 25 protected void onRestart() { 26 super.onRestart(); 27 Log.i(TAG, "onRestart"); 28 } 29 @Override 30 protected void onPause() { 31 super.onPause(); 32 Log.i(TAG, "onPause"); 33 } 34 @Override 35 protected void onStop() { 36 super.onStop(); 37 Log.i(TAG, "onStop"); 38 } 39 @Override 40 protected void onDestroy() { 41 super.onDestroy(); 42 Log.i(TAG, "onDestroy"); 43 } 44 } View Code

?首次運(yùn)行的日志如下:

按返回鍵退出的時(shí)候日志如下:

按小房子鍵的時(shí)候日志如下:

從新返回應(yīng)用程序的時(shí)候日志如下:

還有就是當(dāng)activity還可見的時(shí)候,也就是彈出小窗口,或者透明的activity的時(shí)候,只會(huì)執(zhí)行 ? onPause方法,當(dāng)activity再次獲得焦點(diǎn)后就執(zhí)行onResume

onCreate:activity第一次運(yùn)行的時(shí)候才調(diào)用,而且只調(diào)用一次

onRestart:activity不可見后恢復(fù)可見時(shí)調(diào)用

onStart:activity可見的時(shí)候調(diào)用

onStop:activity不可見的時(shí)候調(diào)用

onResume:activity獲取焦點(diǎn)時(shí)調(diào)用

onPause:activitiy失去焦點(diǎn)時(shí)調(diào)用

onDestroy:activity銷毀時(shí)調(diào)用

啟動(dòng)模式

說到啟動(dòng)模式,它一共有四種,分別是standard、singleTop、singleTask、singleInstance,可以在AndroidManifest.xml文件中通過<activity>標(biāo)簽中的android:launchMode屬性來選擇啟動(dòng)模式。

standard:

    這種模式是標(biāo)準(zhǔn)啟動(dòng)模式,也是默認(rèn)的啟動(dòng)模式,在不進(jìn)行顯式指定的情況下,所有活動(dòng)都會(huì)自動(dòng)使用這種模式

singleTop

    當(dāng)啟動(dòng)模式為singleTop時(shí),在啟動(dòng)活動(dòng)的時(shí)候如果發(fā)現(xiàn)返回棧的站定已經(jīng)是該活動(dòng),那么就直接使用,不必再創(chuàng)建

singleTask

    當(dāng)啟動(dòng)模式為singleTask的時(shí)候,每次啟動(dòng)活動(dòng)都會(huì)在返回棧中檢查是否存在該活動(dòng),如果存在,并發(fā)活動(dòng)之上的活動(dòng)統(tǒng)統(tǒng)出棧,否則就創(chuàng)建一個(gè)

singleInstance

    啟動(dòng)模式 為singleInstance,這時(shí)會(huì)單獨(dú)創(chuàng)建一個(gè)返回棧來管理這個(gè)活動(dòng),這樣可以達(dá)到程序與程序之間共享活動(dòng)

該如何去使用它?

我們?cè)趧?chuàng)建activity的時(shí)候必須繼承Android自帶的Activity,在使用時(shí)必須要在AndroidManifest.xml文件中注冊(cè),如下:

它們兄弟之間是怎么交流的呢?

是通過意圖(Intent)進(jìn)行通訊,數(shù)據(jù)傳輸,開啟活動(dòng)

什么是意圖呢?

其實(shí)它就像我們生活中的快遞員,負(fù)責(zé)幫我們送東西,Android系統(tǒng)里的意圖就是上演著這個(gè)角色...

它可以與不同程序的活動(dòng)交流,也可以啟動(dòng)不在同一個(gè)程序中的活動(dòng)......等等一些,這里我就不做多介紹了,需要往下了解的可以到網(wǎng)上查下資料

?

轉(zhuǎn)載于:https://www.cnblogs.com/coffeeXiaoLi/p/4205667.html

總結(jié)

以上是生活随笔為你收集整理的Android之路-------Activity的详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。