Activity生命周期

来源:互联网 发布:156个援建项目 知乎 编辑:程序博客网 时间:2024/06/06 16:49

Activity

Activity主要作用:

1.用于与用户交互的组件

2.是Window容器,用于存放各种组件

创建Activity要点 :

 1.一个Activity就是一个类,并且这个类要继承Activity 

 2.需要复写OCreate方法 

 3.每一个Activity都需要在AndroidManifest.xml文件中进行配置 

 4.Activity添加必要的控件        


Activity的生命周期

有四个状态:

1.活动状态:当前Activity位于前台,用户可见,可以获得焦点

2.暂停状态:其他Activity位于前台,该Activity依然可见,只是不能获得焦点。

3.停止状态:该Activity不可见,失去焦点。

4.销毁状态:该Activity结束,或Activity所在的Dalvik进程被结束。

onCreate():创建Activity时被回调。

运行时会使用的一些回调方法

onStart():启动Activity时被回调。

onRestart():重新启动Activity时被回调。

onResume():恢复Activity时被回调。

onPause():暂停Activity时被回调。

onStop():停止Activity时被回调。

onDestroy:销毁Activity时被回调。

 

public class MyMain extends Activity {

Button button1;

CheckBox checkBox1;

// Activity第一运行的时候执行

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Log.i("py""onCreate");

setContentView(R.layout.my_main);

button1 = (Button) this.findViewById(R.id.button1);

checkBox1=(CheckBox)this.findViewById(R.id.checkBox1);

checkBox1.setChecked(true);

}

//转屏完毕,恢复状态

@Override

protected void onRestoreInstanceState(Bundle savedInstanceState) {

super.onRestoreInstanceState(savedInstanceState);

Log.i("pyState""onRestoreInstanceState");

checkBox1.setChecked(true);

}

//开始转屏幕的时候保存状态

@Override

protected void onSaveInstanceState(Bundle outState) {

super.onSaveInstanceState(outState);

Log.i("pyState""onSaveInstanceState");

}

 

@Override

protected void onStart() {

super.onStart();

Log.i("py""onStart");

}

 

@Override

protected void onRestart() {

super.onRestart();

Log.i("py""onRestart");

}

 

// Activity出现在前台的时候执行

@Override

protected void onResume() {

super.onResume();

Log.i("py""onResume");

}

 

// View完全绘画出来的时候执行,和视图完全释放的时候执行

@Override

public void onWindowFocusChanged(boolean hasFocus) {

super.onWindowFocusChanged(hasFocus);

Log.i("py""onWindowFocusChanged");

Log.i("py""hasFocus:"+hasFocus);

Log.i("py""button1.getHeight():" + button1.getHeight());

Log.i("py""button1.getWidth():" + button1.getWidth());

}

 

// Activity死掉的时候会率先执行

@Override

public void finish() {

Log.i("py""finish");

super.finish();

}

 

// Activity区域后台的时候执行

@Override

protected void onPause() {

Log.i("py""onPause");

super.onPause();

}

@Override

protected void onStop() {

Log.i("py""onStop");

super.onStop();

}

// Activity死掉的时候执行一次

@Override

protected void onDestroy() {

Log.i("py""onDestroy");

super.onDestroy();

}

}

 

 

1:正常启动正常结束:前台onCreate->onStart->onResume->  后台 onPause->onStop->onDestroy

2:Activity趋于后台:前台onCreate->onStart->onResume-> 后台 onPause->onStop,前台:onRestart->onStart->onResume

3:Activity趋于后台,【意外,回不来了】:前台onCreate->onStart->onResume-> 后台 onPause->onStop,【后台释放了

4:Activity被另外一个Activity遮住

5:生命周期的利用:前台必经:onResume,后台必经OnPause

6:View视图真正绘画周期onWindowFocusChanged(boolean hasFocus)  hasFocus为真代表绘画,获得焦点的意识,hasFocus为假代表释放,失去焦点的意识

7:横竖屏幕切换,那么会改变整个生命周期。

8:横竖屏幕切换。onSaveInstanceState(Bundle outState)转屏时候运行:保存当前状态

9:横竖屏幕切换。onRestoreInstanceState(Bundle outState)转屏时候结束:恢复当前状态

 

Activity总结如下:

Activity启动时:onCreate->onStart->onResume 

Activity暂停时或者返回时:onpause->onstop

Activity重新启动时:OnRestart->onStart->onResume

Activity退出结束时:OnPause->onStop->onDestory   

 


0 0
原创粉丝点击