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
- Activity 生命周期
- Activity生命周期
- Activity 生命周期
- Activity 生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- activity生命周期
- Activity 生命周期
- Activity生命周期
- Activity 生命周期
- activity生命周期
- Activity 生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- 德国的嘎嘎是嘎啊是我情人无情无日期为任务
- 深入理解python之self
- Linux下安装*.bin/*.sh格式文件
- uva10391Compound Words
- 手贱 + 做事不认真想想后果 == 悲剧!
- Activity生命周期
- 常用的脚本
- sitemesh struts2 整合
- POJ 1905 Expanding Rods(几何+二分)
- MySQL索引背后的数据结构及算法原理
- Stack Overflow requires external JavaScript from another domain, which is blocked or failed to load.
- 前滚&后滚
- What is the difference between #import and #include in Objective-C?
- JavaScript中数组高级编程实践-2