Blankj / Blankj/AndroidUtilCode

FragmentManager is already executing transactions

Open
#1,464 4 comments 0 reactions 1 assignee Claimed by @Blankj View on GitHub
bug
Dominant language
Java
Stars
33.6k
Forks
10.6k
PR merge metrics
No merged PRs in 30d

Description

## FragmentManager is already executing transactions
在commitid:28f24faf597ef92771d97780eac7d8e69ad145a4 中对FragmentUtils第1528行处增加了一行 fm.executePendingTransactions(); 之后,特定常见出现FragmentManager is already executing transactions异常崩溃,退回1.30.5版本就不会崩溃

- AndroidUtilCode 的版本:1.30.6
- 出现 Bug 的设备型号:HUAWEI MATE30 pro
- 设备的 Android 版本:API 30

## 验证demo
```
class TestActivity : AppCompatActivity(R.layout.activity_test), Test1Fragment.OnInteractionListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
FragmentUtils.replace(supportFragmentManager, Test1Fragment(), R.id.container_1)
}

override fun showComments() {
FragmentUtils.replace(supportFragmentManager, Test2Fragment(), R.id.container_2)
}
}

class Test1Fragment : Fragment(R.layout.fragment_test1) {
var listener: OnInteractionListener? = null

override fun onAttach(context: Context) {
super.onAttach(context)
if (context is OnInteractionListener) {
listener = context
}
}

override fun onResume() {
super.onResume()
listener?.showComments()
}

interface OnInteractionListener {
fun showComments()
}
}

class Test2Fragment : Fragment(R.layout.fragment_test2)
```

## 异常堆栈

```
Caused by: java.lang.IllegalStateException: FragmentManager is already executing transactions
at androidx.fragment.app.FragmentManager.ensureExecReady(FragmentManager.java:1919)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1984)
at androidx.fragment.app.FragmentManager.executePendingTransactions(FragmentManager.java:600)
at com.blankj.utilcode.util.FragmentUtils.operate(FragmentUtils.java:1529)
at com.blankj.utilcode.util.FragmentUtils.replace(FragmentUtils.java:1158)
at com.blankj.utilcode.util.FragmentUtils.replace(FragmentUtils.java:802)
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.