Closed JulyStar-Lv closed 3 years ago
收到,尽快修复
我粗略试了下没试出来,方便整理一个简单的demo吗
这两天找时间整理个demo出来。 找了个规避方法,使用下面后退按键方式代替navigator.pop(),就不会出现这个异常了
object NavigationUtils {
fun clickBack(
onSuccess: (() -> Unit)? = null,
onFailed: ((e: Exception) -> Unit)? = null
) {
Thread {
try {
val instrumentation = Instrumentation()
instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK)
onSuccess?.invoke()
} catch (e: Exception) {
e.printStackTrace()
onFailed?.invoke(e)
}
}.start()
}
}
下载地址, https://home.kbhy.online:10003/d/s/631664212403298306/VedMf523wD9RYHgAAGYm-7ZKr4fB0Vev-AyDgBlYfxAg_ (复制,粘贴到浏览器能打开,直接打开链接的话,打不开)
lib_base模块的build.gradle 将'com.github.vitaviva.fragivity:core:0.2.9'改成'com.github.vitaviva.fragivity:core:0.2.5', 就没问题
还是这个流程 fragment流程 A -> B , B ->C, C(popSelf) -> D, D(pop) 回到B, 再从B(pop) 回到A必现闪退
我看了下 应该是0.2.9版本 D(pop) 回到B时,B没有走onresume流程导致的
找到原因了,库里为了让Fragment走onStart/onStop用了些偏门,所以需要在Activity.onCreate
中添加proxyFragmentFactory
方法。
class HasLauncherActivity : BaseActivity<EmptyViewModel, ActivityHasLauncherBinding>() {
...
override fun onCreate(savedInstanceState: Bundle?) {
proxyFragmentFactory()
super.onCreate(savedInstanceState)
}
...
}
好的,收到,谢谢!👍
0.2.9版本 fragment流程 A -> B , B ->C, C(popSelf) -> D, D(pop) 回到B, 再从B(pop) 回到A必现闪退 0.2.5版本没有这个问题,由于出现了issue #43 一样的crash,所以升级了版本