本文實例講述了android activity啟動模式之standard。分享給大家供大家參考,具體如下:
android的活動是通過任務task來進行管理的,一個任務就是一組放在棧里的活動的集合,即所謂的返回棧(back stack)。棧具有先進后出、后進先出的特性。當啟動一個活動時,活動會在返回棧中入棧,處于棧頂位置,當按下返回鍵或者調用finish方法會銷毀一個活動,此時棧頂活動會出棧,屆時又會有新的活動處于棧頂位置。
在android中,活動的啟動模式有四種,根據不同的需求可以為活動設置不同的啟動模式。在這里介紹standard模式。
standard模式是活動啟動的默認模式,當為活動設置了此模式,每次啟動都會創建一個新的實例,而不在乎該活動是否已經在返回棧中存在。
(1)新建android項目testlaunchmode
創建完成后,修改activity_main.xml如下
1
2
3
4
5
6
7
8
9
10
|
<linearlayout xmlns:android= "http://schemas.android.com/apk/res/android" android:layout_width= "fill_parent" android:layout_height= "fill_parent" android:orientation= "vertical" > <button android:id= "@+id/button1" android:layout_width= "match_parent" android:layout_height= "wrap_content" android:text= "mainactivity button" /> </linearlayout> |
(2)修改oncreate方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
@override protected void oncreate(bundle savedinstancestate) { super .oncreate(savedinstancestate); //打印當前對象 log.d( "mainactivity" , this .tostring()); //去掉title requestwindowfeature(window.feature_no_title); setcontentview(r.layout.activity_main); //獲取button1 button button1 = (button) findviewbyid(r.id.button1); //添加點擊事件 button1.setonclicklistener( new onclicklistener() { @override public void onclick(view view) { //為了測試standard啟動模式,當點擊按鈕時,啟動mainactivity活動 intent intent = new intent(mainactivity. this ,mainactivity. class ); //啟動活動 startactivity(intent); } }); } |
在該方法中,打印了當前活動對象,同時為按鈕添加點擊事件:啟動本身活動。
(3)查看日志
發布android項目,為了查看效果,連續點擊按鈕3次,看到如下內容:
從圖中可以看出,總共打印了4次(活動啟動+3次點擊按鈕),每次的活動實例都不用,從而驗證了活動啟動模式standard。
此時棧中有4個mainactivity實例,連續按back鍵4次才能退出應用程序。
希望本文所述對大家android程序設計有所幫助。