Android onCreate方法被调用两次的解决方法

原因:

1. 横竖屏旋转

2. 系统启动后,搜索到可用移动网络

会触发onCreate方法,在开启应用程序后,碰到上面两种情况会销毁当前Activity,然后重启一个新的Activity实例.

解决方法:

1. AndroidManifest.xml中增加下面的设置

android:configChanges="mcc|mnc|orientation|keyboardHidden"

2. 重载下面的方法

@Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

        // 检测屏幕的方向:纵向或横向
        if (this.getResources().getConfiguration().orientation
                == Configuration.ORIENTATION_LANDSCAPE) {
            //当前为横屏, 在此处添加额外的处理代码
        }
        else if (this.getResources().getConfiguration().orientation
                == Configuration.ORIENTATION_PORTRAIT) {
            //当前为竖屏, 在此处添加额外的处理代码
        }
        //检测实体键盘的状态:推出或者合上
        if (newConfig.hardKeyboardHidden
                == Configuration.HARDKEYBOARDHIDDEN_NO){
            //实体键盘处于推出状态,在此处添加额外的处理代码
        }
        else if (newConfig.hardKeyboardHidden
                == Configuration.HARDKEYBOARDHIDDEN_YES){
            //实体键盘处于合上状态,在此处添加额外的处理代码
        }
    }



reference:

http://www.cnblogs.com/hibraincol/archive/2010/09/18/1829862.html

http://www.linuxidc.com/Linux/2012-01/50845.htm

你可能感兴趣的:(Android,java)