Activity生命週期

2021-07-04 16:29:45 字數 1564 閱讀 6610

1. activity狀態

啟用狀態 : activity出於前台 , 棧頂位置;

暫停狀態 : 失去了焦點 , 但是使用者仍然可以看到 , 比如彈出乙個對話方塊 , 後面的activity出於暫停狀態;

停止狀態 : 被其它的activity覆蓋 , 使用者不可見 , 但是仍然存在;

2.activity操作生命週期的方法

oncreate() : 初始化一些成員變數 , 如view等 , 此時進入停止狀態;

onstart() : 被使用者可見之前呼叫 , 呼叫之後進入暫停狀態 , 如果不滿足條件我們不想讓使用者進入應用 , 可以在這裡進行限制 , finish掉該activity;

onresume() : 在與使用者互動之前呼叫 , 呼叫之後進入啟用狀態;

onpause() : 啟用另乙個activity時呼叫 , 呼叫之後進入暫停狀態 , 介面可見 , 失去焦點; 該操作用來儲存當前activity資料;

onstop() : activity被覆蓋前呼叫 , 呼叫之後該activity不可見; 該方法用來關閉舊的activity , 注意是完全不可見的時候才會呼叫這個方法;

ondestroy() : activity被銷毀前呼叫 ;

注意 : 在暫停狀態 和 停止狀態 , 如果記憶體緊張 , 該activity會被系統**;

3.activity運作流程

(1)第一次啟動activity a

首先呼叫oncreate()方法建立activity進入停止狀態 -> 呼叫onstart()方法進入暫停狀態 -> 呼叫onresume()方法進入啟用狀態;

(2)從activity a 跳轉到 activity b

a先執行onpause()方法進入暫停狀態 -> b執行oncreate()方法進入停止狀態 -> b執行onstart()方法進入暫停狀態 -> b執行onresume()方法進入啟用狀態 -> a被完全覆蓋執行onstop()方法進入停止狀態;

(3)從activityb 回到 activity a

b執行onpause()方法進入暫停狀態 -> a呼叫onrestart()方法進入停止狀態 -> a呼叫onstart()方法進入暫停狀態 -> a呼叫onresume()方法進入啟用狀態 -> b被覆蓋呼叫onstop()方法進入停止狀態 -> b執行ondestroy()方法銷毀

這裡注意activity的棧是不可逆的 , 只能後退 , 不能前進 , 回退後 , 原來的棧頂的activity就馬上銷毀了.

實現從乙個介面跳向另乙個介面的轉換

button button= (button) findviewbyid(r.id.button2);//獲取button2按鈕

button.setonclicklistener(new view.onclicklistener()

});

Activity生命週期

oncreate 設定activity所使用的布局檔案 按鈕繫結 等靜態設定操作 onstart 該activity能被我們看到的時候就會呼叫onstart onresume 能夠獲得使用者焦點 onpause 啟動另外乙個activity的時候就會呼叫第乙個activity的該方法 onstop ...

activity生命週期

乙個activity的啟動順序 oncreate onstart onresume 當另乙個activity啟動時 第乙個activity onpause 第二個activity oncreate onstart onresume 第乙個activity onstop 當返回到第乙個activity...

Activity 生命週期

activities 在系統中是以 activity 棧的形式被管理的。當乙個新的 activity 啟動時,它將會被放到棧的頂部並變成 running activity 上乙個activity 會被至於它的下面,在新 activity 存在期間它都不會到前端來。乙個 activity 有四個重要的...