安卓的生命週期和佈局大概


Activity的生命週期(一)


兩個Activity之間的調用情況

Activity的聲明週期的7個方法

onCreate() 創建Activity程序

onStart() 開始運行Activity

onResume() 顯示操作界面,焦點

onPause() 暫停。應用程序啓動另一Activity的是後啓動第一個ActivityonPause方法

onStop() 停止(遮擋起來會調用onStop()方法)

onRestart() 重新啓動

onDetroy() 銷燬

----------------------------------------------------------------------------------------

第一次:First Activity onCreate()-->onStart()-->onResume()

Next

第二次:Second Activity onPause(FA)-->onCreate()-->onStart()-->onResume()-->onStop(FA)

Back

第三次:first activity onPause(SA)-->onRestart(FA)-->onStart(FA)-->onResume(FA)-->onStop(SA)-->onDestroy(SA)

------------------------------------------------------------------------------------------

調用 finish 或者系統資源不不夠用的情況下會選擇Destroy

使用finish的時候會調用onRestart() onResume()

finish();

Activity 的生命週期(二)

Task

三個Activity FA SA TA

Intent intent = new Intent();

intent..setClass(FirstActivity.this,SecondActivity.class);

startActivity(intent); //FirstActivity.this.startActivity(intent);

------------------------------------------

Intent intent = new Intent();

intent..setClass(SecondActivity.this,ThirdActivity.class);

startActivity(intent);

------------------------------------------

//電話撥號代碼

Url url = Url.parse("smsto://08000000123");

Intent it = new Intent(Intent.ACTION_SENDTO,url)

it.putExtra("sms_body","The SMS text");

startActivity(it);

--------------------------------------------

四個界面 共同組成了Task

進棧和出棧(後進先出)

--------------------------------------

FA

SA finish();

TA

Back --> FA

---------------------------------------

Mainifest

在註冊文件裏面添加Activity的註冊信息。以消息框的樣式顯示出來。

<activity android:name=".SecondActivity"

android:label=".SecondActivity"

android:theme="@android:style/Theme.Dialog"/ >

----------------------------------------

Activity的佈局初步(一)

LinearLayout

屬性

android:id 指定控件的ID

android:text 指定控件當中顯示的文字

android:gravity 指定控件的內容的基本位置,居中,居右等

android:textSize 指定控件當中的字體大小

android:background 指定控件的背景顏色

android:width 寬度

android:height高度

android:padding*指定控件的內邊距

android:sigleLine如果設置爲真的話,將空間在同一行顯示(內容多的時候可以省略,false

TableLayout

<TableLayout

android:stretchColumns="列數0+"/〉用本列填充未佈滿的空間。

<TableRow>

<TextView

android:gravity="right/left/center/center_horizontal/......"/>

</TableRow>

Activity的佈局初步(二)

LinearLayout TableLayout的嵌套。

Activity的佈局初步(三)

RelativeLayout

屬性

android:layout_above 該控件的底部至於給定ID的控件之上

android:layout_below 該控件的頂部至於給定ID的控件之上

android:layout_toLeftOf 該控件的左邊緣和給定ID的控件的左邊緣對齊

android:layout_toRightOf 該控件的右邊緣和給定ID的控件的右邊緣對齊

android:layout_alignBaseline 該控件的baseline和給定ID的控件的baseline對齊

android:layout_alignBotton 該控件的底部邊緣和給定ID的控件的底部邊緣對齊

android:layout_alignLeft

android:layout_alignRight

android:layout_alignTop

android:alignParentBotton如果該值位true則,該控件的底部邊緣與父控件的底部邊緣對齊

android:layout_alignParentLeft

android:layout_alignParentRight

android:layout_alignParentTop

android:layout_centerHorizontal如果值爲真,該控件將被至於水平方向的中央

android:layout_centerInParent如果值爲真,水平和垂直方向的中央

android:layout_centerVertical如果值爲真,該控件將被至於垂直方向的中央

<RelativeLayout>

</RelativeLayout>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章