bytedance/scene

scene自身添加一个 NavigationListener,在pop时没有收到回调

Ccixyj opened this issue · 4 comments

有一个使用场景需要在scene内部监听栈进出。push时可以,pop时收不到。

 requireNavigationScene().addNavigationListener(this , NavigationListener { from, to, isPush ->
   //pop 时没有回调
        } )
qii commented

你这个被pop的就是你在监听的Scene?

@qii 对。

qii commented

addNavigationListener 的时候这个 this 就是当前的 Scene 的 lifecycleowner,pop 这个 Scene 的时候,自然因为 lifecycle 销毁,于是回调被移除了,于是也就收不到 NavigationListener 的回调。或者你可以考虑把 this 改为 requireNavigationScene(),然后在回调里面判断 from == 你的 Scene,并且 isPush == false,然后再把自己 removeNavigationListener 掉

交给navigation scene也是可以的