Android开发---Activity的生命周期
程序员文章站
2024-03-25 18:20:58
...
在Android开发中,第一步学习的应该是最基础的东西,即Activity的声明周期,相信Activity对于从事Android开发的朋友都很熟悉,这里作者不多做解释。Android的生命周期可以用如下所示的图来说明(此图来自Android Developer官网):
由图示可以看出,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的生命周期就介绍完毕了。
推荐阅读
-
Android开发---Activity的生命周期
-
【android应用】android应用开发中,package相关信息的判断和获取--系统权限、版本号、包名等
-
Android蓝牙BLE开发(二)——对BLE设备的扫描连接以及读写数据
-
Android BLE开发 蓝牙RSSI信号值直接计算距离的方法
-
对自定义一个列表适配器实现的理解 博客分类: android应用开发 适配器
-
android开发中处理大图片内存溢出的方法 博客分类: android android大图片内存溢出解决方法
-
Android开发者必须要了解的View绘制过程(View的工作原理之Draw过程)
-
Android的优化BaseActivity统一管理Activity
-
Android开发--Matrix(一)--实现图片的动态放大缩小
-
Android中Activity转场动画的使用