我正在努力解决一个应用程序问题,该应用程序使用相同的意图启动多个实例的同一活动。我的主要活动是A类类型,并且它执行了两个子活动的startActivity(),这些子活动都是B类类型。因此,我们启动了B1和B2。如果B1和B2都处于暂停状态(通过按返回按钮并确保没有在它们上调用finish(),以便它们真正处于暂停状态),那么如何使A唯一地将B1或B2再次带到前台?我确实想要启动一个新的B活动。我想唯一地将B1或B2带到前台。
所以B1和B2都是这样创建的... Intent intent = new Intent(context, B.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
现在我想让A将B1(或B2)带到前台,所以我使用下面的代码,但是当启动活动时如何区分B1或B2?这只会将最后一个处于顶部的B实例带到前台。
Intent intent = new Intent(context, B.class); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(intent);
我尝试保留对B1和B2的引用并执行以下操作,但是这也只会转到B类活动的最后一个实例,该实例位于顶部...
Intent intent = new Intent(B1context, B.class); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); B1context.startActivity(intent);
我甚至尝试了这个,但它仍然不能让我得到我的唯一的B1或B2... Intent intent = B1.getIntent(); //即启动我的原始意图 startActivity(intent); //仍然只将最后一个处于顶部的B带到前台。
提前感谢!
所以B1和B2都是这样创建的... Intent intent = new Intent(context, B.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
现在我想让A将B1(或B2)带到前台,所以我使用下面的代码,但是当启动活动时如何区分B1或B2?这只会将最后一个处于顶部的B实例带到前台。
Intent intent = new Intent(context, B.class); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(intent);
我尝试保留对B1和B2的引用并执行以下操作,但是这也只会转到B类活动的最后一个实例,该实例位于顶部...
Intent intent = new Intent(B1context, B.class); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); B1context.startActivity(intent);
我甚至尝试了这个,但它仍然不能让我得到我的唯一的B1或B2... Intent intent = B1.getIntent(); //即启动我的原始意图 startActivity(intent); //仍然只将最后一个处于顶部的B带到前台。
提前感谢!
<activity-alias>
来实现它。你需要将 B1 和 B2 分开成不同的组件,通常会是不同的活动类。 - CommonsWare