0

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

4

3 回答 3

0

您应该查看有关活动和片段 保存实例状态的指南和文档

于 2013-10-07T08:53:12.117 回答
0

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

将所有动态数据和对象保存到包中并在 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");
    }
于 2013-10-07T09:08:44.170 回答
0

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

保留片段的要点是,即使底层活动可能会在配置更改时被破坏,但您的片段不会;因此,您可以通过更改使其保持状态。

这些链接将帮助您:

理解 Fragment 的 setRetainInstance(boolean)

为什么使用 Fragment#setRetainInstance(boolean)?

于 2013-10-07T09:17:44.420 回答