一、如何在一个应用程序当中定义多个Activity
1、定义一个类,继承Activity
2、在该类当中,复写Activity当中的onCreate方法
3、在AndroidManiFest.xml文件当中注册该Activity
xml中actyvity的属性:android:name指的是自己定义的那个activity的包名。
label 程序上面的标签
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
这段代码的作用是 程序的默认启动的Activity。
二、启动一个Activity的方法
1、生成一个意图对象(Intent)
2、调用setClass方法设置所要启动的Activity
3、调用startActivity方法启动Activity
Intent实际上是封装了 你想做什么。
通过点击一个Button来启动一个Activity:
class ButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
//setClass函数的第一个参数是一个Context的对象
//Context是一个类,Activity是Context类的子类,也就是说,所有的Activity对象都可以向上转型为Context对象
//直接写this的话就是当前类,要使用外部类,应该是 外部类.this
//setClass函数的第二个参数是一个Class对象,在当前场景上,应该传入需要被启动的Activity类的Class对象
intent.setClass(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
}
三,back stack (后退栈)
每启动一个Activity时,都会被加入到后退栈中
Android每次只显示栈顶的Activity ,每点击一次后退按钮,就将栈顶的那个Activity出栈。
back stack用来记录Activity启动的顺序。有点和浏览器上的后退按钮类似。
Activity的生命周期
onCreate | 在Activity对象被第一次创建时调用 |
onStart | 在Activity变得可见时调用该函数 |
onResume | 在Activity开始准备与用户交互时调用该方法 |
onPause | 当系统即将启动另外一个Activity之前调用该方法 |
onStop | 当前Activity变得不可见时调用该方法 |
onDestroy | 当前Activity被销毁之前将会调用该方法 |
onRestart | 当一个Activity再次启动之前将会调用该方法 |
一个Activity启动的时候,依次运行了onCreate ->onStart -> Resume
例子: