1. 前言
最近很意外地发现了一个系统级别的bug。具体描述如下:
第一种操作:
- 安装APP成功后,在安装器中点击“打开”,APP启动,先进入闪屏页,然后才进入首页;
- 按下Home键,回到桌面;
- 再点击APP的图标,APP并不是打开之前已经加载完的首页,而是重新进入闪屏页,然后再进入首页。
第二种操作:
- 安装APP成功后,关闭安装器,回到桌面,点击APP的图片,APP启动,先进入闪屏页,然后才进入首页;
- 按下Home键,回到桌面;
- 再点击APP的图标,APP直接打开之前已经加载好的首页。
是不是很神奇!在网上搜了一下,有两篇博客提供了解决方案。
2. 解决方案
第一种:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!isTaskRoot() && getIntent() != null) {
String action = getIntent().getAction();
if (getIntent().hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) {
finish();
return;
}
}
setContentView(R.layout.activity_welcome);
}
第二种:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
finish();
return;
}
setContentView(R.layout.activity_welcome);
}
上面两种方案都是在APP的第一个Activity的onCreate方法中进行操作。不过经过我的测试,第一种方案有效,第二种方案在小米手机上没有效果。