一个Android应用,两个Activity A和B,A用TaskAffinity和FLAG_ACTIVITY_NEW_TASK的方式启动B,Home任务列表中显示两个界面(类似微信小程序),移除B,为虽然在最近任务中能看到Activity A,但点击之后会重新构造(相当于杀死了程序)。
startActivity B:
Intent intent = new Intent(this,BActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Activity B manifast:
<activity
android:name=".BActivity"
android:taskAffinity=".BTask">
</activity>
问题参考:https://www.jianshu.com/p/a8f695841008
我希望在最近任务列表中移除Activity B后,Activity A不受影响。
魅族,小米,Android 模拟器里都是正常的,华为和一加就会杀死程序。
大家有什么方法或者想法,或者给我一点建议?
不用想了,无解的,别提微信,微信在白名单里面
你搜下launchMode去了解下singleTask,singleTop,standard、等四种启动模式的区别
有singleTask的话,singleTask之前的页面都会被清掉
、移除Activity B后,Activity A不受影响
有几种实现方式:
1.A,B都设置成standard,并去掉这句intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
2,A,B都设置成singleTask
值得注意的是,singleTask时,有可能startActivity(intent);你穿进去的intent数据Activity接收不到,所以需要用静态变量或者EventBus等传输数据
我想应该是包名的问题,两个activity包名其实是一样的,划掉B把这个包名的都kill掉了