Android - 开始多项活动

Way*_*int 23 android multiple-instances android-activity

是否可以一次启动多个活动?我的意思是,从主要创建3个活动按某种顺序,只是最后一个将是可见的?到目前为止,我只能创建一个活动.

谢谢

Rag*_*ari 41

例如,在用户点击通知以显示一些新添加的内容后,您可能需要这样的内容才能在应用程序中深入启动.

Intent i = new Intent(this, A.class);
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(i);

Intent j = new Intent(this, B.class);
j.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(j);

Intent k = new Intent(this, C.class);
startActivity(k);
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您可以同时启动活动A,B和C,并禁止转换到活动A和B.您可以从当前活动转换为活动C.我强烈建议您记录活动生命周期方法调用(例如,onCreate等)到LogCat.它有助于理解事件的顺序.


gMa*_*ale 15

在响应深度链接或其他用例时,这可能是常见的事情,在这种情况下,您基本上需要综合重建任务(以及它应包含的所有活动).有时,仅仅parents在清单中指定是不够的.

看一下TaskStackBuilder.一个常见的例子:

TaskStackBuilder.create( this )
        .addNextIntent( intentOnBottom )
        // use this method if you want "intentOnTop" to have it's parent chain of activities added to the stack. Otherwise, more "addNextIntent" calls will do.
        .addNextIntentWithParentStack( intentOnTop )
        .startActivities();
Run Code Online (Sandbox Code Playgroud)


小智 12

真的很老问题,但我还以为我还是回答了.

使用: public void startActivities(Intent []意图,Bundle选项)


Tho*_*mmy 3

在第一个 Activity 的方法startActivity(new Intent(...);末尾尝试。onCreate这将立即启动一个新的活动并暂停第一个活动。使用返回键您将返回到上一个 Activity

  • 这种方法的问题是,如果活动 B 在启动活动 C 后被系统杀死(完成),并且当用户通过单击“向上”按钮返回到活动 B 时,活动 B 的 onCreate 将尝试再次启动活动 C 。 (2认同)