最近在项目中遇到了一个问题,当代码发生异常后,用startActivity()启动异常画面,却始终显示不出来。
看打出来的log,ActivityManager确实打印出了启动目标Activity的信息,但是紧接着走了后面的处理,目标Activity的生命周期没有走。
想了半天也没有明白,为什么打印出了去启动Activity的log画面却没有表示出来。
最终发现主要原因有两个。
第一,在用startActivity()启动目标Activity之后,如果没有在try catch代码块中catch住,或throw exception的话,代码还是会继续往下执行,除非自己手动return,结束掉后续处理。
第二,如果后续处理没有被终止,并且还有startActivity()等跳转画面的操作,之前的startActivity()会被覆盖,不会显示之前的画面,而是显示最后一次startActivity()的目标画面。
其实都是一些比较基础的Java和Android的知识点,但是只有在项目中真正发生问题,再调查出原因才会记忆深刻,因为已经是一名老程序员了,所以记不住了,好脑子不如烂笔头,记下来希望能帮到有同样的困扰的小伙伴。