扫码关注官方订阅号
小伙看你根骨奇佳,潜力无限,来学PHP伐。
/** * 保存相册参数 * 说明:对于配置低的手机,开启照相机时, * 当前activity会被回收,导致再次返回该activity时,原先保存 * 的变量被重新初始化,导致程序无法运行,造成崩溃。 * 此处需要记录相关变量信息,如果activity异常退出, * 再次进入时调用onRestoreInstanceState函数就可以恢复这些变量的值。 */ @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); Log.i(TAG, "onSaveInstanceState"); /* 保存相片路径 */ outState.putString("mCurrentSelectPictureCachePath", mCurrentSelectPictureCachePath); } /** * 恢复相册参数 */ @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); Log.i(TAG, "onRestoreInstanceState"); /* 恢复当前相片存储路径 */ mPictureCachePath = savedInstanceState.getString("mCurrentSelectPictureCachePath", mCurrentSelectPictureCachePath); ...... }
这两个方法并不是Activity每次都会调用的,我们注意到onCreate和onRestoreInstanceState都有个Bundle类型的参数,那么这个参数是谁传来的呢?肯定是onSaveInstanceState传来的。
当我们的Activity在未经我们自己finish的情况下被结束(没有被回收也会执行onSaveInstanceState),onSaveInstanceState方法就会被调用。此时我们就可以利用outState参数来存储我们的数据,当onCreate或者onRestoreInstanceState(只有Activity被真正回收后才调用)时,将这些数据拿出来重新赋值给我们的成员变量,这样,就算是Activity被销毁了,我们依然可以重新获得相关变量的值。
有可能是启动相机拍照时占用内存过大,导致LMK把后台的进程给杀掉了
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
这两个方法并不是Activity每次都会调用的,我们注意到onCreate和onRestoreInstanceState都有个Bundle类型的参数,那么这个参数是谁传来的呢?肯定是onSaveInstanceState传来的。
当我们的Activity在未经我们自己finish的情况下被结束(没有被回收也会执行onSaveInstanceState),onSaveInstanceState方法就会被调用。此时我们就可以利用outState参数来存储我们的数据,当onCreate或者onRestoreInstanceState(只有Activity被真正回收后才调用)时,将这些数据拿出来重新赋值给我们的成员变量,这样,就算是Activity被销毁了,我们依然可以重新获得相关变量的值。
有可能是启动相机拍照时占用内存过大,导致LMK把后台的进程给杀掉了