欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android开发---Activity的生命周期

程序员文章站 2024-03-25 18:20:58
...
在Android开发中,第一步学习的应该是最基础的东西,即Activity的声明周期,相信Activity对于从事Android开发的朋友都很熟悉,这里作者不多做解释。Android的生命周期可以用如下所示的图来说明(此图来自Android Developer官网):Android开发---Activity的生命周期
由图示可以看出,Android应用程序从运行到结束要先后经历六个过程,第一个:onCreate()就是对应用程序进行初次创建所回调的函数,一般在这个函数中初始化应用程序的界面,第二个和第三个分别是启动应用时所回调的函数,之后应用程序进入Activity running状态。
接着如果有其他的Activity挡住前一个Activity,但是并没有完全挡住的时候,即前一个Activity失去了焦点,此时onPause()回调,当另一个Activity完全挡住前一个Activity的时候,此时回调函数onStop(),如果此时退出程序或者是调用函数finish(),那么Activity进入onDestory()阶段,图中的反向箭头指的是在某一种情况下的Activity的反应,在这里不多做解释。
为了更清楚的说明这个问题,一下是测试代码,以供参考:
public class Life_Test extends 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() {
		// TODO Auto-generated method stub
		super.onRestart();
		Log.d("Debug", "onRestart");
	}

	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		Log.d("Debug", "onResume");
	}

	@Override
	protected void onStop() {
		// TODO Auto-generated method stub
		super.onStop();
		Log.d("Debug", "onStop");
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_life__test, menu);
		return true;
	}

}
public class Activity02 extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity02);
		Log.d("Debug2", "------>oncreate");
		
	}

	@Override
	protected void onStart() {
		// TODO Auto-generated method stub
		super.onStart();
		Log.d("Debug2", "------>onstart");
	}

	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		Log.d("Debug2", "------>ondestory");
	}

	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		super.onPause();
		Log.d("Debug2", "------>onpause");
	}

	@Override
	protected void onRestart() {
		// TODO Auto-generated method stub
		super.onRestart();
		Log.d("Debug2", "------>onrestart");
	}

	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		Log.d("Debug2", "------>onresume");
	}

	@Override
	protected void onStop() {
		// TODO Auto-generated method stub
		super.onStop();
		Log.d("Debug2", "------>onstop");
	}

}

到此Activity的生命周期就介绍完毕了。