在使用导航的过程中,我们发现它的页面跳转效率非常好,XML管理页面跳转逻辑和片段之间的参数传递非常方便,但一个大问题是,当片段堆栈返回到上一页时,最后一个片段将重新访问oncreateview方法。我们的许多视图和数据初始化工作都是在onview创建之后完成的,这导致了一种糟糕的体验,每次我们回到最后一个页面时,我们都可能再次刷新。这是一种避免每次重新创建视图的方法。
编写一个basenavigation片段:
核心思想是保存上一次创建的视图,返回到上一页,然后直接返回到oncreateview,而不再在onviewcreate方法中初始化它。Leakcanary可能会提示lastview发生内存泄漏,只需忽略它。