android - 停止在恢复后重新创建 fragment ?

标签 android android-fragments onresume back-stack

我正在使用多个 fragment 动态添加到 activity 中。一切正常,当我按下后退按钮时, fragment 转到backstack。当我 resume 它时,它出现了。但每次 Resume 时,它都会重新创建 fragment 并调用 onCreateView。我知道这是 fragment 生命周期的正常行为。

这是我的onCreateView:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(
            R.layout.competitive_programming_exercise, container, false);
    return rootView;
}

我想阻止那些 fragment 重新创建。我尝试使用 onSavedInstanstate 但没有任何效果。我怎样才能做到这一点?

最佳答案

在调用 super 方法之前,在 Activity 的 onCreateView 中将 savedInstanceState 设置为 null。您还可以仅从 savedInstanceState 包中删除键“android:viewHierarchyState”和“android:fragments”。这是简单解决方案的代码,使状态无效:

@Override
public void onCreate(Bundle savedInstanceState)
{
    savedInstanceState = null;
    super.onCreate(savedInstanceState);

    ...
}

关于android - 停止在恢复后重新创建 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18428152/

相关文章:

java - R.java android studio 中 GradientColor_fontVariationSettings 的重复实例

android - 如何避免在 Android 上处理两次深层链接?

java - fragment 交易删除

java - 如何在 fragment 中使用 onClickListener 方法?

具有垂直选项卡的 Android 布局 - 设计如 hello 短信应用程序

android - 如何在 android 中重新启动 Activity ?

Android - 删除 Google Maps Fragment onPause 并重新添加 onResume

android - Issue-在Android中集成Authorized.Net支付网关

java - 如何最好地将 StringBuilder 转换为 String[]?

Android textview 不支持换行