Android开发---Activity的生命周期
在Android开发中,第一步学习的应该是最基础的东西,即Activity的声明周期,相信Activity对于从事Android开发的朋友都很熟悉,这里作者不多做解释。Android的生命周期可以用如下所示的图来说明(此图来自Android Developer官网):
由图示可以看出,Android应用程序从运行到结束要先后经历六个过程,第一个:onCreate()就是对应用程序进行初次创建所回调的函数,一般在这个函数中初始化应用程序的界面,第二个和第三个分别是启动应用时所回调的函数,之后应用程序进入Activity running状态。
接着如果有其他的Activity挡住前一个Activity,但是并没有完全挡住的时候,即前一个Activity失去了焦点,此时onPause()回调,当另一个Activity完全挡住前一个Activity的时候,此时回调函数onStop(),如果此时退出程序或者是调用函数finish(),那么Activity进入onDestory()阶段,图中的反向箭头指的是在某一种情况下的Activity的反应,在这里不多做解释。
为了更清楚的说明这个问题,一下是测试代码,以供参考:
- private Button button;
- private Button button2;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_life__test);
- Log.d("Debug", "onCreate");
- button=(Button)findViewById(R.id.button1);
- button2=(Button)findViewById(R.id.button2);
- button.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- AlertDialog.Builder builder=new Builder(Life_Test.this);
- builder.setTitle("Test...");
- builder.setMessage("This is Test_Dialg..");
- builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- dialog.dismiss();
- }
- });
- builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- dialog.dismiss();
- }
- });
- builder.show();
- }
- });
- button2.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- final Intent intent=new Intent(Life_Test.this,Activity02.class);
- startActivity(intent);
- }
- });
- }
- @Override
- protected void onStart() {
- // TODO Auto-generated method stub
- super.onStart();
- Log.d("Debug", "onStart");
- }
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- Log.d("Debug", "onDestroy");
- }
- @Override
- protected void onPause() {
- // TODO Auto-generated method stub
- super.onPause();
- Log.d("Debug", "onPause");
- }
- @Override
- protected void onRestart() {