无法并行启动标记为 MainLauncher 的活动

Can't start activities marked as MainLauncher in parallel

我正在做一个 Xamarin Android 项目,我想在其中将活动作为不同的起点(例如 app1app2)。 为实现这一点,我已将选项 "MainLauncher = true" 添加到 似乎 一开始工作正常的那些活动的 Activity-属性:

[Activity(
    Label = "App1", 
    Icon = "@drawable/app1_app_icon", 
    MainLauncher = true
)]

现在的问题是,如果我打开 app1,返回菜单屏幕 - 不关闭它 - 同时打开 app2,已经 运行显示 app1App2 未启动。这不是我所期望的。

有没有办法让它以 app2 也能在 app1 是 运行 的同时启动的方式工作?

我知道可以多次启动一个 activity 但这不是我想要的。每个 activity 只能启动一次。

解决方案是定义一个名为 TaskAffinity 的附加属性,定义应该打开的 activity。

对于 App1 你将定义:

[Activity(
    Label = "App1", 
    Icon = "@drawable/app1_app_icon", 
    MainLauncher = true,
    TaskAffinity = "com.company.project.actApp1"
)]

对于 App2,您只需将字符串更改为:

[Activity(
    Label = "App2", 
    Icon = "@drawable/app2_app_icon", 
    MainLauncher = true,
    TaskAffinity = "com.company.project.actApp2"
)]

还有另一个处理 TaskAffinity 主题的 Whosebug 问题:

Two main activities in AndroidManifest.xml

我能找到的关于 TaskAffinity 的最佳解释也是一个 Whosebug 问题:

Android Task Affinity Explanation