gpt4 book ai didi

Android 11(仅限)FragmentManager 崩溃 - FragmentManager 已被销毁

转载 作者:行者123 更新时间:2023-12-03 17:23:35 32 4
gpt4 key购买 nike

是否有人注意到 Android 11 的生命周期发生了任何明显的变化?
我的应用程序在 Android 11 之前的操作系统上运行良好,但在我的 Pixel 4 上每次都因错误而崩溃:

E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.IllegalStateException: Fragment host has been destroyed
是否有任何其他人注意到只会影响他们在 Android 11 上的应用程序?
我正在为 Activity 和 fragment 使用不同的文件。
我有一个 TreasureHuntActivity调用 onCreate:
val fragmentTransaction = fragmentManager.beginTransaction()
fragmentTransaction.replace(R.id.container, TreasureHuntMapFragment.newInstance(), "map-${index}").addToBackStack("map-${index}").commit()
fragmentManager.executePendingTransactions()
TreasureHuntMapFragment它调用
val intent = Intent(context, MainUnityActivity::class.java)
activity.startActivityForResult(intent, 33)
Handler().postDelayed({ activity.pushQuestionHintFragment() }, 1000)
回到 TreasureHuntActivity它调用 TreasureHuntQuestionHintFragment以显示
fun pushQuestionHintFragment() {
val fragmentTransaction = fragmentManager.beginTransaction()
fragmentTransaction.replace(R.id.container, TreasureHuntQuestionHintFragment.newInstance(), "questionHintFragment-${specificQuestionId}").addToBackStack("questionHintFragment-${specificQuestionId}").commitAllowingStateLoss()
fragmentManager.executePendingTransactions()
}
这适用于 Android 11 之前的版本,它可以完美运行,如前所述,它现在不适用于 11+。随着进一步调试,它显示 fragmentManager为 null,之前声明为 var fragmentManager = supportFragmentManager全局 TreasureHuntActivity如果我在 Pixel 2(Android 的早期版本)上进行调试, fragmentManager不为空并且是 BackStackEntry .
我已经尝试将生命周期或 fragment 更新为 2.2.0 或 2.3.0-alpha07 为 1.3.0,但仍然没有任何乐趣。 fragmentManager在调用 pushQuestionHintFragment() 时仅在 Android 11 运行时为空.如果我调试, this.isDestroyed也是如此,但仅限于 Android 11。

最佳答案

使用supportFragmentManager而不是 fragmentManager

fun pushQuestionHintFragment() {
val fragmentTransaction = supportFragmentManager.beginTransaction()
fragmentTransaction.replace(
R.id.container,
TreasureHuntQuestionHintFragment.newInstance(),
"questionHintFragment-${specificQuestionId}").addToBackStack("questionHintFragment-${specificQuestionId}")
.commitAllowingStateLoss()
supportFragmentManager.executePendingTransactions()
}

关于Android 11(仅限)FragmentManager 崩溃 - FragmentManager 已被销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63994323/

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