Activity是Android应用的重要组成单元之一(另外三个是Service、BroadcastReceiver和ContentProvider),而Activity又是Android应用最常见的组件之一。通常一个Android应用需要N个Activity组成,Activity主要负责与用户交互
在一个Activity生命周期中有以下方法会被系统回调:
- onCreate():在创建Activity时被回调,默认重写onCreate(Bundle savedInstanceState),用于初始化Activity
- onStart():启动Activity时被回调
- onRestart():重新启动Activity时被回调,总是在onStart()以后执行
- onPause():暂停Activity时被回调
- onResume():当Activity由暂停状态恢复为活动状态时。调用该方法后,该Activity位于Activity栈顶。该方法总是在onPause()以后执行
- onStop():停止Activity时被回调
- onDestory():销毁Activity时被回调
接下来写一个简单的程序解释Activity的生命周期
package com.example.activitytest;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
private String TAG = "Demo";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i(TAG, "onCreate");
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
Log.i(TAG, "onRestart");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.i(TAG, "onResume");
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.i(TAG, "onStart");
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.i(TAG, "onDestroy");
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.i(TAG, "onPause");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.i(TAG, "onStop");
}
}
(1)打开应用时,看一下LogCat
正好对应这部分
(2)当我们按BACK键时,我们这个应用程序将结束,看一下LogCat
正好对应:
(3)当我们打开应用程序时,比如浏览器,我正在浏览NBA新闻,看到一半时,突然想听歌,这时候会按HOME键,然后去打开音乐应用程序。当我们按HOME的时候,看一下LogCat
正好对应:
(4)当我们再次启动ActivityDemo应用程序时,看一下LogCat
正好对应: