假设有两个页面(A,B),当从A页面跳转到B页面的时候,执行了如下代码
ARouter.getInstance().build("/app/" + code).withBundle("bundle", bundle).navigation(mContext);this.finish();
这样过会出现短暂的黑屏,原因是代码中真正执行跳转的方法会在this.finish()之后执行,查看源码可知
从代码中可知,执行跳转的代码会被放入looper,所以就不可能立即执行。
所以将代码改为:
ARouter.getInstance().build(Paths.PAGE_HOME).navigation(this, object : NavigationCallback(){ override fun onArrival(postcard: Postcard?) {
finish()
}
override fun onLost(postcard: Postcard?) { TODO("Not yet implemented") }
override fun onFound(postcard: Postcard?) { TODO("Not yet implemented") }
override fun onInterrupt(postcard: Postcard?) { TODO("Not yet implemented") } })
可以解决这个问题
网友评论