Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 切换到横向模式时碎片冻结_Android_Android Fragments_Android Orientation - Fatal编程技术网

Android 切换到横向模式时碎片冻结

Android 切换到横向模式时碎片冻结,android,android-fragments,android-orientation,Android,Android Fragments,Android Orientation,我的应用程序中有一个片段占用了我一半的活动。在这个片段中有一个视图寻呼机,它还有3个片段 现在,当我最初处于横向或纵向模式时,一切正常。但是当我在模拟器中切换到横向时(我的模拟器是GenyMotion,它的工作速度是原始AVD管理器的5倍。) 片段仍然正确地显示在我的活动中,但它已冻结这意味着我不能在查看页面或任何其他页面之间单击按钮或滑动。 谁能告诉我怎么了。是我的模拟器还是我的代码?非常感谢你的帮助。。。谢谢 使用onSavedInstanceState()和onRestoreInstanc

我的应用程序中有一个片段占用了我一半的活动。在这个片段中有一个视图寻呼机,它还有3个片段

现在,当我最初处于横向或纵向模式时,一切正常。但是当我在模拟器中切换到横向时(我的模拟器是GenyMotion,它的工作速度是原始AVD管理器的5倍。)

片段仍然正确地显示在我的活动中,但它已冻结这意味着我不能在
查看页面或任何其他页面之间单击按钮或滑动。


谁能告诉我怎么了。是我的模拟器还是我的代码?非常感谢你的帮助。。。谢谢

使用onSavedInstanceState()和onRestoreInstanceState()

onSaveInstanceState()在更改屏幕方向之前保存当前活动的状态,onRestoreInstanceState()在更改方向时恢复状态

    protected void onSaveInstanceState(Bundle icicle) {
  super.onSaveInstanceState(icicle);
}
在父活动中写入上述方法

要还原活动状态,可以使用onRestoreInstanceState()和onCreate()

区别在于onRestoreInstanceState()在onStart()之后调用,onCreate()在onStart()之前调用


因此,在您的情况下,您可以在父活动中使用onSaveInstanceState()。在更改方向之前保存活动状态,onCreate()将使用以前保存的状态重新创建活动。

更改方向时,您的活动将重新创建自身并重新绘制所有内容。是否使用任何后台线程加载视图?不,我没有,所有内容都发生在主UI线程上。。我正在构建一个模型,因此目前没有后台进程…受保护的void onRestoreInstanceState(Bundle savedInstanceState){//TODO自动生成的方法存根super.onRestoreInstanceState(savedInstanceState);}尝试将此方法与onSaveInstanceState()一起使用仍然不起作用。。。你认为我的模拟器可能有问题吗?