Activity recreate 后停留在onPause()状态

来源:互联网 发布:个性挂历制作软件 编辑:程序博客网 时间:2024/05/29 07:41
最近做APP中实现黑夜模式时,使用了Activity的recreate()方法。从Activity B中返回Activity A中时,在A的onResume()中检查模式是否变动,变动即recreate()。但recreate()后,重建的Activity A,经过onStart() 、onResume()、onPause(),并停留在了onPause()状态。停留在onPause()状态后,在魅族手机上,出现问题:点击返回键,不会触发onBackPressed(),不会退出当前Activity。(在模拟器和小米手机上没有这个问题)
   @Override    protected void onResume() {        super.onResume();        boolean nightMode = isNightMode();        if (nightMode != mIsNightMode) {           recreate();                    }    }

之后,发现使用Handler,将recreate delay一下,就不会出现这个问题。重建的Activity正常停留在了onResume()状态下。

 @Override    protected void onResume() {        super.onResume();        boolean nightMode = isNightMode();        if (nightMode != mIsNightMode) {            new Handler().postDelayed(new Runnable() {                @Override                public void run() {                    recreate();                }            }, 100);        }    }

记录一下,有空再研究。

0 0