Android组件Activity的生命周期
来源:互联网 发布:win7内存优化软件 编辑:程序博客网 时间:2024/06/03 18:36
Activity有三种状态:
1.当Activity处于屏幕的最前端时属于运行状态
2.当Activity被其他Activity半覆盖(比如弹出对话框)但是对用户仍然可见(只是失去焦点)时处于暂停状态
3.当Activity被其他Activity完全覆盖时处于停止状态
生命周期的应用
当Activity从一个状态到另外一个状态转变时就会调用相应的方法,包括 onCreate(),onStart(),onRestart(),onResume(),onPause(),onStop(),onDestory()七种方法
一、创建和销毁 onCreate 和 onDestory
应用场景:当界面销毁的时候存储一些数据,在onCreate创建的时候回显数据
注意:如果一个界面被最小化了,那么是不会调用onDestory方法的。仅仅是调用了onStop方法
应用场景: 当界面不可见的时候,暂停视频 的播放,当界面可见的时候,继续视频的播放
三、获取焦点和失去焦点 onResume 和 onPause
注意, 如果一个界面还能看得见,但是失去了焦点,那么它的生命周期只会调用onPause.不会调用onStop
应用场景 : 一般用作游戏的暂停,在游戏的界面上覆盖住一个透明的界面,那下面的界面能看到,但是不可交互。
生命周期总结
一、entire lifetime 完整的生命周期
onCreate--onStart--- onResume---onPause--onStop---onDestory
Activity的完整生命周期从onCreate()开始到onDestory()结束,一般Activity会在onCreate()方法中申请资源,进行一系列的初始化操作,而在onDestory()中销毁这些资源,比如线程的创建与销毁
二、visible lifetime 可视生命周期
onStart--onResume--onPause--onStop
Activity的可视生命周期从onStart()到onStop(),再次期间用户可以看见该Activity,尽管它并不是在前台或者并未与用户进行交互,调用onStop()之后Activity处于停止状态,要想恢复到运行状态必须依次调用onRestart(),onStart(),onResume()
三、foreground lifetime 前台生命周期
onResume--onPause
Activity的前台生命周期从onResume()到onPause()结束,在此期间用户可以看到该Activity并且与该Activity进行交互,Activity经常会在暂停与恢复期间与用户进行交互,比如当设备休眠时或者有新的Activity启动时会调用onPause()方法,当Activity获得结果或者接收到新的Intent时会调用onResume()方法
1.当Activity处于屏幕的最前端时属于运行状态
2.当Activity被其他Activity半覆盖(比如弹出对话框)但是对用户仍然可见(只是失去焦点)时处于暂停状态
3.当Activity被其他Activity完全覆盖时处于停止状态
生命周期的应用
当Activity从一个状态到另外一个状态转变时就会调用相应的方法,包括 onCreate(),onStart(),onRestart(),onResume(),onPause(),onStop(),onDestory()七种方法
一、创建和销毁 onCreate 和 onDestory
应用场景:当界面销毁的时候存储一些数据,在onCreate创建的时候回显数据
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ed_contact = (EditText) findViewById(R.id.ed_contact); ed_content = (EditText) findViewById(R.id.et_content); sp = getSharedPreferences("sms", 0); String contact = sp.getString("contact", ""); String content = sp.getString("content", ""); ed_contact.setText(contact); ed_content.setText(content); }@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();String contact = ed_contact.getText().toString();String content = ed_content.getText().toString();Editor editor = sp.edit();editor.putString("contact", contact);editor.putString("content", content);editor.commit();}二、可见和不可见 onStart 和 onStop
注意:如果一个界面被最小化了,那么是不会调用onDestory方法的。仅仅是调用了onStop方法
应用场景: 当界面不可见的时候,暂停视频 的播放,当界面可见的时候,继续视频的播放
三、获取焦点和失去焦点 onResume 和 onPause
注意, 如果一个界面还能看得见,但是失去了焦点,那么它的生命周期只会调用onPause.不会调用onStop
应用场景 : 一般用作游戏的暂停,在游戏的界面上覆盖住一个透明的界面,那下面的界面能看到,但是不可交互。
生命周期总结
一、entire lifetime 完整的生命周期
onCreate--onStart--- onResume---onPause--onStop---onDestory
Activity的完整生命周期从onCreate()开始到onDestory()结束,一般Activity会在onCreate()方法中申请资源,进行一系列的初始化操作,而在onDestory()中销毁这些资源,比如线程的创建与销毁
二、visible lifetime 可视生命周期
onStart--onResume--onPause--onStop
Activity的可视生命周期从onStart()到onStop(),再次期间用户可以看见该Activity,尽管它并不是在前台或者并未与用户进行交互,调用onStop()之后Activity处于停止状态,要想恢复到运行状态必须依次调用onRestart(),onStart(),onResume()
三、foreground lifetime 前台生命周期
onResume--onPause
Activity的前台生命周期从onResume()到onPause()结束,在此期间用户可以看到该Activity并且与该Activity进行交互,Activity经常会在暂停与恢复期间与用户进行交互,比如当设备休眠时或者有新的Activity启动时会调用onPause()方法,当Activity获得结果或者接收到新的Intent时会调用onResume()方法
另外Activity还有onSaveInstanceState()方法和onRestoreInstanceState()方法,他们并不是Activity生命周期方法,而是出现一些意外情况时触发,比如内存不足,用户直接按home键时会调用onSaveInstanceState()方法,而当用户主动去销毁,比如按返回键时不会触发,典型的例子就是当用户屏幕发生变化时Activity的销毁与创建
阅读全文
0 0
- Android组件Activity的生命周期
- Android Activity 组件生命周期
- Android四大组件(1.1)--Activity的生命周期
- Android系统组件之Activity的生命周期
- Android四大组件之Activity的生命周期
- android组件之Activity生命周期
- Android 四大组件生命周期:Activity
- android四大组件--Activity生命周期
- Android四大组件之Activity,Activity生命周期
- Android的四大组件之-Activity的状态和生命周期
- android四大组件之一Activity生命周期的理解
- Android四大组件之一Activity的生命周期<学习笔记>
- Android的四大组件之Activity生命周期详解
- Android学习之核心组件Activity的生命周期
- Android四大组件之Activity的生命周期详解
- Android四大组件——Activity的生命周期
- Android activity的生命周期
- Android:Activity的生命周期
- 这个项目没有必要做---图片地址修改
- Java---异常类、文件类
- p218 输出字符串中的最长单词
- Map集合
- VFIO
- Android组件Activity的生命周期
- iOS账号管理,将个人账号转为公司账号
- Linux常用命令大全
- JavaScript——typeof VS instanceof
- 帧内预测-第一步:fillReferenceSamples函数:
- Date日期对象
- 图形验证码生成servlet
- 使用OpenCV对一系列图像生成视频avi
- 第000讲-第006讲 从1000个代码案例中学习人工智能和大数据实战