如果是闪屏页Activity的话,其基本不可能位于Task的根部;而如果正常启动的话,闪屏页Activity必定在对应的Task的根部位置。那么我们可以从这个地方对于这个bug进行规避,方法就是在闪屏页Activity的onCreate代码加入如下一段代码:
// 避免从桌面启动程序后,会重新实例化入口类的activity
if (!this.isTaskRoot()) {
Intent intent = getIntent();
if (intent != null) {
String action = intent.getAction();
if (intent.hasCategory(Intent.CATEGORY_LAUNCHER)
&& Intent.ACTION_MAIN.equals(action)) {
finish();
return;
}
}
}