前言:从事Android工作5个月了,一直都很懒,开个博客从最基础的写起...
1、单Activity生命周期
图片来自http://developer.android.com
由上图可以看出Android生命周期是:onCreate->onStart->onResume->onPause->onStop->onDestory,下面可以从代码层面验证下
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("onCreate");
}
@Override
protected void onStart() {
System.out.println("onStart");
super.onStart();
}
@Override
protected void onResume() {
System.out.println("onResume");
super.onResume();
}
@Override
protected void onPause() {
System.out.println("onPause");
super.onPause();
}
@Override
protected void onStop() {
System.out.println("onStop");
super.onStop();
}
@Override
protected void onRestart() {
System.out.println("onRestart");
super.onRestart();
}
@Override
protected void onDestroy() {
System.out.println("onDestroy");
super.onDestroy();
}
启动Activity后:执行Activity启动流程
按下back键后:执行Activity销毁的流程
按下home键后(进入其他Activity):执行Activity停止流程
2、Activity跳转相关生命周期
首先在MainActivity加入代码 protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("onCreate");
initView();
}
private void initView(){
btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
});
}
再创建SecondActivity
public class SecondActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
System.out.println("onCreate SecondActivity");
}
@Override
protected void onStart() {
System.out.println("onStart SecondActivity");
super.onStart();
}
@Override
protected void onResume() {
System.out.println("onResume SecondActivity");
super.onResume();
}
@Override
protected void onPause() {
System.out.println("onPause SecondActivity");
super.onPause();
}
@Override
protected void onStop() {
System.out.println("onStop SecondActivity");
super.onStop();
}
@Override
protected void onDestroy() {
System.out.println("onDestroy SecondActivity");
super.onDestroy();
}
}
运行代码,点击button查看效果:先暂停再启动新Activity再停止
SecondActivity按back键返回:先暂停再唤醒前一个Activity再停止、销毁
如果给SecondActivty加入弹框主题 <activity android:name=".SecondActivity"android:theme="@android:style/Theme.Dialog"/>则效果如下: