gpt4 book ai didi

android - 当 Activity 在后台终止时保留 Fragments

转载 作者:行者123 更新时间:2023-11-30 02:37:00 24 4
gpt4 key购买 nike

在我的应用程序中,我有一个 Activity 。该 Activity 有 5 个 fragment 。每个 Fragment 占据整个窗口,并且在任何时候只会显示其中一个。

从第五个 fragment 开始我打开相机拍照。由于我打开相机,在某些手机中,Activity 被杀死并重新创建。

拍摄照片后,将结果提供给新创建的 Activity。但由于这是一个新创建的 fragment ,因此显示的是第一个 fragment 而不是第五个 fragment 。

如何显示第五个 Fragment 并保持其状态? setRetainInstance 仅在 Activity 在配置更改时重新创建时才有用。

主要问题是,在重新创建 Activity 时,这些 fragment 的默认构造函数被调用并导致所有 fragment 的重复实例。

最佳答案

尝试在 onSaveInstanceState() 中保存您的 fragment 状态,并在 onCreate 中使用它来恢复状态。

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
getSupportFragmentManager().putFragment(outState, "fragment", currentFragment);
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
// Load saved fragment or values you want
currentFragment = getSupportFragmentManager().getFragment(savedInstanceState, "fragment");
} else {
// your code to initialize all the fragments (App Launch case)
}
}

这仍将保持状态并将回调 onActivityResult。

关于android - 当 Activity 在后台终止时保留 Fragments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26383443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com