Android - 如何创建活动的多个实例?

Don*_*rty 8 android multiple-instances android-activity

我想知道是否可以在Android中创建单个Activity的多个实例?

我目前通过使用以下代码启动我自己的inCall屏幕进行Voip测试:


     public void initInCallScreen(String pName, String phoneNumber, int contactID, boolean 
        callDirection, int lineID){

    //starts in callScreen dialog
    final Intent myIntent = new Intent(context, CallDialogActivity.class);
    myIntent.putExtra("NAME", pName);
    myIntent.putExtra("NUMBER", phoneNumber);
    myIntent.putExtra("ID", contactID);
    myIntent.putExtra("CALLTYPE", callDirection); //True = Incoming, False = Outgoing
    myIntent.putExtra("LINEID", lineID);
    myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(myIntent);
Run Code Online (Sandbox Code Playgroud)

这允许我开始活动正常.

但是,当我调用它一秒时,它只返回已创建的Activity,而不是创建一个新的Activity并将其放在堆栈上.

我希望能够多次创建活动,以便我在堆栈上有两个或三个活动,用户可以在它们之间切换,使用Home,Back按钮等...

这是可能的,如果是这样,我做错了什么?

Com*_*are 7

但是,当我调用它一秒时,它只返回已创建的Activity,而不是创建一个新的Activity并将其放在堆栈上.

您可能已更改清单以添加android:launchMode干扰目标的属性.默认情况下,启动活动会启动新实例.

也:

  • 摆脱myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);,因为你不希望根据你在这里写的内容完成新任务
  • 既然context可能是一个Context,我不知道为什么你要经历所有的ContextWrapper/ getBaseContext()东西