在这个即将国庆的日子里,碰到这么个神奇的bug;经过查找发现竟然是前人留下来的坑;
在你的LAUNCHER的Activity里面查看是否有 android:launchMode="singleTask"这个属性,如果有这个属性就把他去掉,或者改成singleTop。
不然当你进入后台时,再次重启APP他是进入的MainActivity。然后在singleTask这个属性下是把栈内的除了MainActivity的Activity出栈。
导致你一进来就是MainActivity.(你们也有可能是引导页,每个人项目都不一样,但是只要修改如下图框框所示的那个Activity即可)
因为我这边是tcp长连接所以他进来又进了一遍MainActivity。
当你把那个属性去掉的时候还不行的话,那就在你的引导页的onCreate方法加上下面这个判断:
// 避免从桌面启动程序后,会重新实例化入口类的activity
if (!this.isTaskRoot()) { // 判断当前activity是不是所在任务栈的根
Intent intent = getIntent();
if (intent != null) {
String action = intent.getAction();
if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) {
finish();
return;
}
}
}