上个星期,我遇到了一个问题,一直无法解决。这个问题的描述是:在进行页面跳转时,会先出现一个空白界面一闪而过。为了解决这个问题,我尝试了两种方案。
首先,我按照网上搜索到的解决方案,检查onCreate方法是否正确布局。在Android 5.0之前,onCreate方法只有一个Bundle参数;而在Android 5.0及以后的版本中,onCreate方法需要接收两个参数:Bundle saveInstanceState和PersisitanbleBundle persistentState。假设我们在activityA中跳转到activityB,这种解决方案适用于在栈中的activityA位于activityB的下方。
然而,我遇到的问题是从activityA跳转到activityB,然后再从activityB跳转回activityA。在这种情况下,activityA位于activityB的下方。同样的现象是在跳转时闪过一个界面,然后显示activityA。对于这种情况,首先需要判断跳转是否成功。也就是说,有可能是activityB出现了异常,然后被finish掉了。因为activityA处于activityB的下方,所以当activityB被finish掉后,直接显示栈中处于该activity下方的activityA。如果是这种情况,使用第一种解决方案显然是无法解决问题的。那么,如何解决呢?
解决这个问题的关键是找出异常所在的地方。要找到异常,我们可以先查看跳转前的代码是否有问题,是否会出现什么异常。通过这样的方法,我们可以找到导致页面闪现空白界面的原因,并针对性地进行修复。