android Activity Intent.FLAG_ACTIVITY_CLEAR_TOP 与 Intent.FLAG_ACTIVITY_SINGLE_TOP 结合导致的闪屏
Opened this issue · 1 comments
pythoncat1024 commented
android Activity Intent.FLAG_ACTIVITY_CLEAR_TOP 与 Intent.FLAG_ACTIVITY_SINGLE_TOP 结合导致的闪屏
一段很普通的代码:
Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); // #闪一下黑屏
startActivity(intent);
说一下调用背景:桌面点击启动
A
,然后在A
里面点击按钮启动了B
,在B
里面按返回键,调用了上面的代码。在清单文件里面,A,B
都没有配置启动模式。(也就是都是默认标准启动模式)
先不管这种操作是否合理。目前遇到的问题就是这样操作,在华为手机,Android
版本为9.0
的机型上面,全部出现了大概率闪屏。(伴随着黑屏)
实话说,我并不清楚为什么这样会出现闪屏。但是,我去掉了 Intent.FLAG_ACTIVITY_SINGLE_TOP
之后就不会闪屏了。
然后,我也不清楚,为什么去掉之后就好了。
答案应该在 startActivity(intent);
的源码里面了...
pythoncat1024 commented
后续,然后刚好有一天打酱油的时候,我特意去翻看了 com.android.server.am.ActivityStarter
不过这个源码真的超级长,而且还关联其他的源码。。。。总之一句话就是,没看出结果来。