onConfigurationChanged,oncreate 等
来源:互联网 发布:天谕玉虚男捏脸数据 编辑:程序博客网 时间:2024/06/10 16:29
生命周期, onconfigchanged 等
测试 代码:
package com.example.configtest;import android.app.Activity;import android.content.res.Configuration;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); System.out.println("调用了 oncreate"); }@Overrideprotected void onRestoreInstanceState(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onRestoreInstanceState(savedInstanceState);System.out.println("onRestoreInstanceState");}@Overrideprotected void onStart() {// TODO Auto-generated method stubsuper.onStart();System.out.println("调用了 onStart");}@Overrideprotected void onRestart() {// TODO Auto-generated method stubsuper.onRestart();System.out.println("调用了 onRestart");}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();System.out.println("调用了 onResume");}@Overrideprotected void onSaveInstanceState(Bundle outState) {// TODO Auto-generated method stubsuper.onSaveInstanceState(outState);System.out.println("调用了 onSaveInstanceState");}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();System.out.println("调用了 onPause");}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();System.out.println("调用了 onDestroy");}@Overridepublic void onConfigurationChanged(Configuration newConfig) {// TODO Auto-generated method stubsuper.onConfigurationChanged(newConfig);System.out.println("调用了 onConfigurationChanged");}@Overrideprotected void onStop() {// TODO Auto-generated method stubsuper.onStop();System.out.println("调用了 onStop");}@Overridepublic void onWindowFocusChanged(boolean hasFocus) {// TODO Auto-generated method stubsuper.onWindowFocusChanged(hasFocus);System.out.println("调用了 onWindowFocusChanged");} }空白 到 启动 :
下拉 通知栏 : 只有 onWindowFocusChanged 发生变化(中间 4个 onWindowFocusChanged是因为下拉-恢复了2次 )
按 返回键:
再次启动 并点击 home键
点击 home键是 从 蓝色 onpause 开始的.
再次 进入:
下面 测试 横竖屏 切换
首先 不在manifest 里面做 android: configchanges 配置:
竖屏 ---> 横屏:
从 honecomb 版本开始, 直到 onstop()返回后, 程序才才可能处于 killable状态, 这意味这 onSaveInstaceState 可能会出现在 onpause后面.
可以看到, 切屏时, 程序 销毁重建了一次. onRestoreInstanceState 出现在 onstart 后面. 通常 用oncreate (bundle) 里完成 onRestoreInstanceState数据处理也是可以的, 应为它们的参数一样的.
下面我们来看 横屏 --> 竖屏:
与上面一样, 网上说 要执行2次但 我这里只执行一次, 也许跟输入法有关.
也就是说 不配置 , 无论 横竖 都 要重建 一次(且不会调用 onConfigurationChanged)
配了 orientation 后, 调用该函数一次且 要重建一次
----------------------------------------------------------------------------------
android:configChanges="orientation"
竖屏--->横屏:
横屏--->竖屏:
----------------------------------------------------------------------------------------------------------------
android:configChanges="orientation|keyboardHidden"
竖屏--->横屏:
横屏--->竖屏:
用的华为 4.4android系统.
从 honecomb -3.1 版本开始有了变化
已查明原因, 新版机器就是这样 要想 不重建 需要加上 android:configChanges="orientation|screenSize"
有了这个, 切屏(无论横竖 )都只调用 一次 :
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
新建一个 老版本的 模拟器 试一下
这次用的是 2.2 的模拟器
前面的 启动 返回键 都是一样的结果 .
按下 home键时 有些 变化:
这个 onSaveInstaceState 跑到onpause 前面去了
在不配置 android:configchenges 时: 结果 如下
竖屏--->横屏:
同样 也是 onSaveInstaceState 跑到onpause 前面去了
横屏--->竖屏:
这个是真正 执行了2次.
android:configChanges="orientation"
竖屏--->横屏:
横屏-->竖屏:
多了 一个函数
------------------------------------------------------------------------------------------------------------------------
android:configChanges="orientation|keyboardHidden"
竖屏--->横屏:
////////////////////
顺便说一下 , 弹出 toast或者 自己的dialog 不会调用 生命周期函数的. (除非 该dialog是 别人的, 这也是 dialog创建时 的context的一个作用).
- onConfigurationChanged,oncreate 等
- onConfigurationChanged会重新 OnCreate 的解决方案,onConfigurationChanged不被调用
- 安卓application生命周期的onCreate、onLowMemory、onTrimMemory、onConfigurationChanged
- onConfigurationChanged
- onConfigurationChanged
- onConfigurationChanged
- onConfigurationChanged
- onConfigurationChanged
- onConfigurationChanged
- onConfigurationChanged
- onConfigurationChanged
- onConfigurationChanged
- onConfigurationChanged
- android转屏,切换屏幕,横竖屏(onConfigurationChanged)会重新 OnCreate 的解决方案
- android转屏,切换屏幕,横竖屏(onConfigurationChanged)会重新加载 OnCreate 的解决方案
- android转屏,切换屏幕,横竖屏(onConfigurationChanged)会重新 OnCreate 的解决方案
- Android 3.2 以上转屏,切换屏幕,横竖屏(onConfigurationChanged)会重新 OnCreate 的解决方案
- android转屏,切换屏幕,横竖屏(onConfigurationChanged)会重新加载 OnCreate 的解决方案
- Android
- C++学习笔记:static_cast和reinterpret_cast
- log4j.properties 详解与配置步骤
- JAVASCRIPT 语言中的 this
- Ext.each的用法
- onConfigurationChanged,oncreate 等
- 如何将Android Studio中的项目上传到GitHub中
- Android 摇一摇功能
- LeetCode66: Plus One
- BLE-NRF51822教程3-sdk程序框架剖析
- Tabhost的简单使用
- UILabel frame animate时文字跳跃异常
- SQL中的UNION和UNION ALL
- BLE-NRF51822教程4-串口BLE解析