使用setRetainInstance更改屏幕方向(true)

时间:2013-10-07 08:47:18

标签: android screen-orientation

嘿我想问一下如何使用新方法setRetainInstance(true)处理android中的屏幕方向更改,因为它只适用于未添加到backstack的片段。我目前拥有的是一个不使用片段的应用程序它只使用一个活动并使用asynctasks所以我将如何在我的应用程序中实现这个新的android更改 这个解决方案不可行,因为我需要布局从横向更改为纵向android:configChanges =“orientation”

3 个答案:

答案 0 :(得分:0)

您应该查看有关活动和片段的指南和文档 Saving instance state

答案 1 :(得分:0)

你已经覆盖了两个方法1)onSaveInstanceState()和2)onRestoreInstanceState()。

将所有动态数据和对象保存到bundle中并在onRestoreInstanceState()上检索它。

例如,

  @Override
    public void onSaveInstanceState(Bundle savedInstanceState){
        super.onSaveInstanceState(savedInstanceState);
        savedInstanceState.putString("message", text.getText().toString());
    }

    @Override
    public void onRestoreInstanceState(Bundle savedInstanceState){
        super.onRestoreInstanceState(savedInstanceState);
        message = savedInstanceState.getString("message");
    }

答案 2 :(得分:0)

“此解决方案不可行,因为我需要布局从横向更改为纵向”

保留片段的意思是即使在配置更改时可能会破坏底层活动,您的片段也不会;因此,你可以通过改变让它保持持久状态。

这些链接可以帮助您:

Understanding Fragment's setRetainInstance(boolean)

Why use Fragment#setRetainInstance(boolean)?