如果是闪屏页Activity的话,其基本不可能位于Task的根部;而如果正常启动的话,闪屏页Activity必定在对应的Task的根部位置。那么我们可以从这个地方对于这个bug进行规避,方法就是在闪屏页Activity的onCreate代码加入如下一段代码:

    1. // 避免从桌面启动程序后,会重新实例化入口类的activity
    2. if (!this.isTaskRoot()) {
    3. Intent intent = getIntent();
    4. if (intent != null) {
    5. String action = intent.getAction();
    6. if (intent.hasCategory(Intent.CATEGORY_LAUNCHER)
    7. && Intent.ACTION_MAIN.equals(action)) {
    8. finish();
    9. return;
    10. }
    11. }
    12. }