8

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

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


     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);

这使我可以很好地启动 Activity。

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

我希望能够多次创建活动,以便我在堆栈上有两个或 3 个活动,并且用户可以使用主页、后退按钮等在它们之间切换...

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

4

2 回答 2

8

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

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

还:

  • 摆脱myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);,因为您不希望根据您在此处编写的内容执行新任务
  • 因为context可能是一个Context,我不知道你为什么要经历所有的ContextWrapper/getBaseContext()东西
于 2010-07-01T12:25:40.757 回答
3
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
            | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
            | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
于 2013-05-16T02:16:23.050 回答