一、Activity的功能
- Activity负责Android应用的页面处理工作
- 用来显示用户界面,并处理用户交互
- 通常,一个界面对应一个Activity
- 每一个Android应用都需要有一个入口Activity,其名称可以由开发者自行定义,但需要在AndroidManifest.xml中配置
- 每个Activity都可以启动另一个或多个Activity,而每一个被启动的Activity都可以向启动它的Activity返回一些信息
- 为了使用一个Activity,需要首先实现一个继承Activity的子类,并重写父类中的一些方法
- 一般都会重写onCreate(),这个方法是在Activity被启动时自动调用的,我们可以把大多数的初始化工作放在这个方法中进行
- 在onCreate()方法中,必须执行super.onCreate(saveInstanceState),否则Activity启动时会抛出一个异常
//AndroidManifest.xml
<application android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity" android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".NewActivity" android:label="@string/app_name" ></activity>
</application>
//activity_main.xml
<Button android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="跳转"/>
//new_activity.xml
<Button android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回"/>
//MainActivity.java
public class MainActivity extends Activity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
//必须要有此方法
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) {
//第一个参数:当前页面.this,第二个参数:目标页面.class
Intent intent = new Intent(MainActivity.this, NewActivity.class);
//启动一个Activity视图 startActivity(intent);
}
});
}
}
//NewActivity.java
public class NewActivity extends Activity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_activity);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) {
Intent intent = new Intent(NewActivity.this,MainActivity.class);
startActivity(intent);
}
});
}
}
二、Activity的生命周期
- onCreate:创建Activity实例对象的方法
- onStart:启动当前的Activity实例的方法
- onResume:如果该方法执行,页面的实例可以和用户进行交互
- onPause:如果该方法执行,页面不在和用户交互,失去焦点,页面可见
- onStop:页面和用户完全不可见
- onDestroy:销毁当前的Activity的页面实例
- onRestart:将置于后台的应用程序的Activity重新显示在前台的时候被调用,一般会连续调用onRestart---onStart---onResume
- Activity的生命周期都是成对出现的,onCreate---onDestroy,onStart---onStop,onResume---onPause
三、Activity的四种状态
- 运行态(Running):Activity处于屏幕最前端,用户可见且获得焦点
- 暂停态(Paused):Activity被置于后台,用户可见,但失去了焦点
- 停止态(Stopped):Activity被新的Activity覆盖,失去焦点,用户不可见
- 终止态(Destroyed):Activity被系统终止,资源被回收