Activity创建与销毁(2)
来源:互联网 发布:微信打开转到淘宝app 编辑:程序博客网 时间:2024/04/27 15:19
异常情况下的生命周期
系统配置发生改变导致Activity被KILL
在类似旋转屏幕动作等异常情况下,Activity会被销毁后重建。
在销毁的时候onPause
onStop
onDestory
都会被调用,而且系统会在onStop
之前调用onSaveInstanceState
来保存当前的Activity,我们可以在这个方法中保存一些有用的数据。
重建之后,系统会调用onRestoreInstanceState
,把之前保存的Bundle
对象作为参数传递给onRestoreInstanceState
和onCreate
我们就可以取出之前保存的数据并恢复。
同时onSaveInstanceState
,onRestoreInstanceState
中,系统自动为我们恢复了了一些数据,比如视图结构,listview的滚动位置,等。。。每一个View都有这两个方法。可以查看源码。
活动被回收前 数据的保存与恢复
常见问题,活动onStop()->app process killed->onCreate(),切回上一个Activity发现由于被回收过,导致之前的数据丢失。。。
Activity中加入OnSaveInstanceState(Bundle参数)回调方法,会保证在回收前调用,可以保存数据,Bundle参数.putString(“key”,value);
然后在onCreate()中加入恢复数据方法 Bundle参数.getString(“key”);
资源不足导致的优先级低的被杀死
- 前台
- 可见
- 后台
内存不足的时候,就会从优先级别低的Activity开始杀死其进程。所以后台应该在service中运行,而尽量避免被杀死。
那么如何避免被销毁重建呢?
在AndroidMenifest.xml中activity标签内的configChanges属性中选择某些值。代表在这个时候不会重建,比如android:configChanges="orientation|screensize"
android:configChanges="locale"//系统本地位置发生了变化,一般指系统切换了语言
android:configChanges="keyboardHidden"
然后在Activity的onConfugChanged方法中去处理系统配置的变化。
- Activity创建与销毁(2)
- Activity创建与销毁(1)
- Activity销毁与重建
- Activity 启动与销毁
- 进程创建与销毁
- Activity的创建与销毁、数据的保存和启动模式分析
- 对象的创建与销毁
- session的创建与销毁
- 内核线程创建与销毁
- Java对象创建与销毁
- Session简介,创建与销毁
- 线程自动创建与销毁
- C++创建与销毁对象
- Android 线程创建与销毁
- 创建刚体与发射销毁
- 对象的创建与销毁
- 详解Activity生命周期(Lesson 4 - 重新创建销毁的activity)
- 销毁 Activity
- java.lang.UnsupportedClassVersionError: com/android/build/gradle/AppPlugin : Unsupported major.minor
- is not translated in "zh" (Chinese) [MissingTranslation]
- 01字串
- 欢迎使用CSDN-markdown编辑器
- 关于malloc()前是否需要类型转换,即void*转换为具体类型
- Activity创建与销毁(2)
- 英文构词法 —— ant、ent 后缀
- Java之控制反转和依赖注入
- Codeforces570C 【简单标记】
- 文章标题
- Application类
- MySQL中information_schema是什么
- 《Python核心编程》第7章 习题
- 我的Java之旅 第八课 Servlet 进阶API、过滤器与监听器