1.onCreate():初始化操作,所有活动都从这里启始。这里可以加载布局,或绑定事件等。
2.onSart():这个是活动变为不可见时调用。
3.onResme():这个方法一直处于栈的顶部,在和用户交互时调用,一直处于动行状态。
4.onPause():系统准备去启动或者恢复另一个活动时调用。这个方法以通常用来释放内存或保存数据,一定要快,不然会影响到栈顶部的活动运行。
5.onStop():这个方法是活动处于不可见时调用,它与onPause()的区别在于如果启动的活动是一个对话框式的,则onPause()会得到执行而onStop()的不会执行。
6.onDestroy():这个是活动被回收时调用,调用后活动就会被回收。
7.onRestart():重启处于停止状态的活动。
下面让我们来创建一个实例来检验一下上节课所学到的知识,这次我们重新创建一个项目:activtityLifecysletest
分别是dialog_Activity、NormalActivity、 MainActivity。其中dialog_Activity、NormalActivity分别有一个txtview控件,txt为活动的中文名。MainActivity中有两个按钮分别启动dialog_Activity、NormalActivity之用。在MainActivity注册两个活动的事件,然后调用几个回调函数来记录日志,让我们看清楚这7个方法的启动顺序。
public class MainActivity extends AppCompatActivity {
public static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "onCreate");
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
Button startNormalActivty = (Button) findViewById(R.id.start_normal_activity);
Button startDialogActivty = (Button) findViewById(R.id.start_dialog_activity);
startNormalActivty.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, NormalActivity.class);
startActivity(intent);
}
});
startDialogActivty.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, dialog_Activity.class);
startActivity(intent);
}
});
}
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "onStart服务开始");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "Resume活跃状态");
}
@Override
protected void onStop(){
super.onStop();
Log.d(TAG,"onStop活动停止") ;
}
@Override
protected void onDestroy(){
super.onDestroy();
Log.d(TAG,"onDestroy活动销毁");
}
@Override
protected void onRestart()
{
super.onRestart();
Log.d(TAG,"onRestart活动重启") ;
}
}
以上是 MainActivity的代码。两个活动的这里就不写了,小Y的键盘真心不好用。快被虐哭了。直接上图吧。