1. 程式人生 > >Activity的生命週期和Activity的四種啟動模式

Activity的生命週期和Activity的四種啟動模式

Activity的七種生命週期方法

void onCreate();

  • Activity已經被建立

void onStart();

  • Activity已經顯示在螢幕,但是還沒有得到焦點(不能互動)

void onresume();

  • Activity得到焦點,可以和使用者互動

void onPause();

  • Activity失去焦點,無法與使用者互動,但是還可見

void onStop();

  • Activity不可見,進入後臺

void onDetroy();

  • Activity被銷燬

void onRestart();

  • Activity從不可見變成可見的時候會呼叫此方法

Activity完整的生命週期(entire lifetime)

onCreate –> onStart –> onResume –> onPause –>onStop –> onDetroy

Activity可視生命週期(visible lifetime)

onStart –> onResume –> onPause –> onStop

前後臺生命週期(foreground lifetime)

onResume –> onPause

注意:

當記憶體不足時,系統會優先殺死後臺Activity所在的執行緒,都殺光了,記憶體如果還是不足,那麼就會殺死暫停狀態的Activity所在的程序。
如果有多個後臺程序,在選擇殺死目標的時候,會採用最少最近使用演算法(LRU)

Activity的四種啟動模式

首先我們需要了解一下安卓是怎麼安排多個Activity顯示的,使用的任務棧(task stack)資料結構,當應用執行的過程中,記憶體中可能會開啟多個Activity,那麼所有被開啟的Activity都會被存放在任務棧中。任務棧的特點是後進先出

啟動模式一:標準模式(預設)

  • 後進先出

啟動模式二:singleTop(單一頂部模式)

  • 如果任務棧的棧頂已經存在這個要開啟的Activity,那麼不會重新建立這個Activity,而是複用原來的Activity。保證棧頂如果存在,不會重複建立。
    • 應用場景 :瀏覽器的書籤和瀏覽歷史

啟動模式三:singleTask(單一任務模式)

  • 當前任務棧裡面只能有一個例項存在
  • 當開啟一個Activity時,就去檢查任務棧裡面是否有例項已經存在,如果存在,就複用已經存在的例項,還會把這個Activity上面的所有的別的Activity全部清空,保證當前任務棧中只有一個例項存在。
  • 如果一個Activity啟動的時候佔用大量資源(cpu,記憶體),就會採用這種單一任務模式。

啟動模式四:singleInstance(單例)

  • Activity會執行在自己的任務棧中,並且這個任務棧裡面也只允許一個例項存在。
  • 如果要一個Activity在整個手機系統中只存在一個例項,就可以中這種模式。
  • 應用場景:電話撥打介面

相關推薦

Activity生命週期Activity啟動模式

Activity的七種生命週期方法 void onCreate(); Activity已經被建立 void onStart(); Activity已經顯示在螢幕,但是還沒有得到焦點(不能互動) void onresume(); Acti

Activity 生命週期的個人理解與啟動模式

activity為Android四大元件之一     activity被稱之為活動主要實用為實現使用者與程式之間的互動 接下來我們先來看Activity生命週期流程圖: Activity在被我們進行操作時會在四種形態中相互切換  &nbs

Android基礎之Activity啟動模式task相關

1 啟動模式介紹 啟動模式簡單地說就是Activity啟動時的策略,在AndroidManifest.xml中的標籤的android:launchMode屬性設定; 啟動模式有4種,分別為standard、singleTop、singleTask、singleI

Android中Activity啟動模式taskAffinity屬性詳解

在android應用開發中,打造良好的使用者體驗是非常重要的。而在使用者體驗中,介面的引導和跳轉是值得深入研究的重要內容。在開發中,與介面跳轉聯絡比較緊密的概念是Task(任務)和Back Stack(回退棧)。activity的啟動模式會影響Task和Back Stack

Activity啟動模式onNewIntent()

  在Android中每個介面都是一個Activity,切換介面操作其實是多個不同Activity之間的例項化操作。在Android中Activity的啟動模式決定了Activity的啟動執行方式。   Android總Activity的啟動模式分為四種: Activity啟動模式設定:

Activity生命週期啟動模式

Activity的生命週期都很熟知,但一些特殊情況下是走的哪些方法呢? 最普通的,第一次啟動一個Activity onCreat ---onStart---onResume 開啟新的Activity或切換的桌面:onPause ----onStop(如果新的Activi

activity啟動模式詳細分析

分析 四種 sig mage 導致 現在 .com 一個 頂部 1、android中通過任務隊列來管理activity 采用棧的結構就是後進先出 手機裏面如果啟動多個應用就會啟動多個任務棧來管理對應的activity。 主要解決下面的問題:對應的四種

【筆記】Activity啟動模式區別

參考:https://blog.csdn.net/edisonchang/article/details/49981457 activity 啟動的四種模式 : AndroidManifest.xml :: android:launchMode="???" 1.standard:【不會

安卓基礎之Activity啟動模式

Activity的四種啟動模式 Activity的啟動模式在清單檔案中配置: <activity ... activity:lauchMode:"..."; //有四種模式選擇,如不設定,預設為standard模式 1、standard :標準的啟動模式 系統的預設模式,一次跳轉即會

Android學習筆記——Activity啟動模式

1.Activity的管理機制 Android的管理主要是通過Activity棧來進行的。當一個Activity啟動時,系統根據其配置或呼叫的方式,將Activity壓入一個特定的棧中,系統處 於執行(Running or Resumed)狀態。當按Back鍵或觸發finish(

[Android]基礎--Activity啟動模式

Activity的管理機制 Android的管理主要是通過Activity棧來進行的。當一個Activity啟動時,系統根據其配置或呼叫的方式,將Activity壓入一個特定的棧中,系統處於執行(Running or Resumed)狀態。當按Back鍵或觸發finish()方法時,Acti

Activity中的啟動模式

Activity啟動方式有四種,分別是:standard singleTop singleTask singleInstance可以根據實際的需求為Activity設定對應的啟動模式,從而可以避免建立大量重複的Activity等問題。設定Activity的啟動模式,只需要在AndroidManife

Activity啟動模式(launchMode)

我們今天要講的是Activity的四種launchMode。 launchMode在多個Activity跳轉的過程中扮演著重要的角色,它可以決定是否生成新的Activity例項,是否重用已存在的Activity例項,是否和其他Activity例項公用一個task裡。這裡簡單介紹一下task的概念

Activity生命週期堆疊管理

Activity的生命週期 Activity是android中的四大元件之一,也是最基本,最重要的元件,是android系統提供一個視覺化的,能與使用者交換的元件。 系統提供的元件,不需要使用者例項化,使用者也不能例項化,是系統進行回撥,例如web開發的servlet也是系

活動Activity啟動模式初解

活動Activity的四種啟動模式 standard singleTop singleTask singleInstance 注:Activity的四種啟動模式只需在AndroidManifest.

Activity啟動模式的認識

最近看了一些前輩的文章,有了一些新的認識,不僅僅是知識,包括對待事情的態度。記錄下來,作為自己態度的見證。首先在android中對於Activity的例項是通過棧(Task)來進行管理的,棧是一種先進後出的資料結構。主要的操作就是進棧和出棧。簡單的如下圖所示。

Android開發— Activity生命週期fragment的生命週期

(圖片就借鑑一下其他作者的,見諒!) Activity的生命週期在業務邏輯上的處理一定要慎重!!! Fragment的生命週期同樣十分重要,並且要常用frgment懶載入方案更要注意這種方式,其生命週期圖 同時我們都知道 Fragment 是依賴於 Acti

Android Activity啟動模式

前言 記得第一次探討Activity的啟動模式,是在2017年8月份,那個時候對一年後走出校門的未來很是憧憬,時間真快,已經畢業四個月,工作和生活也都趨於穩定。 一、小前言   相信很多人和我一樣,在初學Android甚至初入職場的時候不瞭解Acticity的啟動模式,

Activity啟動模式的特點

一.Activity四種啟動模式的特點 1.standard模式  Activity預設的啟動模式,依次入棧出棧,滿足"先進後出"的原則。這種模式下,可以有多個相同的例項,也允許多個相同Activity疊加 2.singleTop模式  當啟動的Activity已

Android面試——Activity啟動模式

前言 今天開始,會逐步總結Android面試可能遇到的各種問題及其知識點總結。為的就是今天4月份的晉升面試或者更好機會的面試能夠拿出100%的狀態。 有興趣的同學,也可以關注我的Android面試資料夾。 Activity四種啟動模式 Activ