对跳转同一Activity类启动的不同实例

宝杰X7 2020-05-21 09:14:47
从A Activity跳转 B1 Activity,B1跳转回A但B1不finish,再从A跳转B2 Activity,B2跳转回A但B2不finish,B1和B2都是同一个Activity类的启动的不同实例。我现在需要从A跳转到已存在的B1,我尝试在A跳转前加Intent.FLAG_ACTIVITY_REORDER_TO_FRONT,只会跳到最近的B2.再尝试加action,category都是跳到最近的B2,我能获取到整个Activity栈但好像除了startActivity以外没有其他挑起Activity的方法了。附上返回A Activity的代码。

Intent intent=new Intent(B1.this,A.class); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);startActivity(intent);
...全文
403 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
风尘寂剑 2020-05-28
  • 打赏
  • 举报
回复
手机版 WPS 应该是有类似功能
qq_24438773 2020-05-27
  • 打赏
  • 举报
回复
activity.moveTaskToBack ??
王能 2020-05-24
  • 打赏
  • 举报
回复
搞了半天,用栈应该是解决不了了,B1B2改成2个Activity,或者用2个fragment吧
宝杰X7 2020-05-21
  • 打赏
  • 举报
回复
兄弟们,Activity的启动模式这些我都知道,现在我就是不想复用Activity,因为我的需求中动态创建的Activity中的控件都是一样的,但是加载一段复杂的时间,整个软件就几个页面而已,对内存开销不需要考虑太多,我现在是要第二次打开新的Activity不需要创建(有一段加载时间)能直接显示。然后我试着上面的--目的就是打开指定的Activity实例,这些实例在栈中由同一个Activity类新建的。我不是新手了,对于启动模式和flag都很了解了,但是我自己测试的时候碰到了这个问题,不是为了实现需求而换方法,我用fragment切换也行啊,但是-目的就是打开指定的Activity实例
剑笑了 2020-05-21
  • 打赏
  • 举报
回复
或者你说说你的需求,为什么要这样去实现,大神们说不定有更好的解决办法,根本不需要这样跳
剑笑了 2020-05-21
  • 打赏
  • 举报
回复
新建B2的时候利用Flag动态设置启动模式singleInstance,他就会存在于一个单独的activity栈。就不会影响当前栈的跳转。得根据你的实际需求来,一般同一个activity栈里面存在两个同类型的不同实体是不合理得也很浪费。虽然我不清楚你的需求,但是启动模式都试试一般能解决你的问题。

80,351

社区成员

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

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