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>