launchMode设置为singletask的一点疑问,标题要长。。。

神马程序员 2012-03-16 10:33:25
Activity A与Activity B都设置launchMode为singletask,现在我从Activity A跳转到Activity B,然后在B中捕获BACK按键,startActivity到Activity A,目的是不让Activity B被finish掉,但是发现Activity还是被finish掉了,因为它执行了onDestroy方法。请问有什么办法可以让Activity B不被finish掉,前提是两个launchMode模式都不改变。
...全文
119 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
深耕安卓 2012-03-19
  • 打赏
  • 举报
回复
不是太理解楼主做法的目的,activity可以在重新显示的时候把数据再载入进来,这样的设计可能更符合android的风格。
sf_key 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 izard999 的回复:]

back键系统会做弹栈的操作, 所以当前栈顶的Activity会被Destroy掉. 你捕获Back的onKeyDown也只是进行你自己的一些操作, 而无法阻止系统做的事情, 应该是这样了
[/Quote]
很明显不是,back键已经拦截并且再次启动A为start方式,这个问题应该是由于A启动B时B仍然在A的任务栈中,所以导致B启动A回到栈底时系统中弹出B已显示A,你试试设置A和B为不同的taskAffinity属性试试。singleTask和Intent.FLAG_NEW_TASK不是一定会新开一个task的,这个你可以看下API说明。
神马程序员 2012-03-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qaandtest 的回复:]

activity都看不到了,还留着干什么,如果是后台要做的,放到service里最好。
[/Quote]必须留着,里面是个选项卡,大量的数据...
深耕安卓 2012-03-16
  • 打赏
  • 举报
回复
activity都看不到了,还留着干什么,如果是后台要做的,放到service里最好。
神马程序员 2012-03-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 izard999 的回复:]

back键系统会做弹栈的操作, 所以当前栈顶的Activity会被Destroy掉. 你捕获Back的onKeyDown也只是进行你自己的一些操作, 而无法阻止系统做的事情, 应该是这样了
[/Quote]如果Act1设置为standard,则是正常的,求助啊
izard999 2012-03-16
  • 打赏
  • 举报
回复
back键系统会做弹栈的操作, 所以当前栈顶的Activity会被Destroy掉. 你捕获Back的onKeyDown也只是进行你自己的一些操作, 而无法阻止系统做的事情, 应该是这样了

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧