经分析得出结果为:
点击添加帐号后,会同时创建两个Activity,分别是ChooseTypeAndAccountActivity和ChooseAccountTypeActivity,前者CTAAA通过startChooseAccountTypeActivity()方法瞬间启动CATA,所以与用户交互的列出选择帐号的Activity为后者CATA,但是5.0中startChooseAccountTypeActivity()方法写到了resume()方法中,当CATA界面选择帐号后会执行finish()方法,然后CTAAA会执行resume ()方法,所以会再次执行startChooseAccountTypeActivity()方法,也就是此时又重新创建了一个CATA Activity,导致闪现“Choose an account”,在Android M中Google把5.0中onresume中的内容写到了onCreat方法里面,并删除了onresume方法,如此一来问题即可解决。
frameworks/base/core/java/android/accounts/ChooseTypeAndAccountActivity.java
frameworks/base/core/java/android/accounts/ChooseAccountTypeActivity.java