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

时间:2015-02-20 13:12:38

标签: c# android xamarin xamarin.android

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

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

现在的问题是,如果我打开app1,请返回菜单屏幕 - 不关闭它 - 同时打开app2,已经运行的app1是显示。 App2未启动。这不是我预期会发生的事情。

有没有办法让app2app1正在运行的同时开始工作?

我知道可以多次启动一项活动,但这不是我想要的。每项活动只应开始一次。

1 个答案:

答案 0 :(得分:2)

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

对于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"
)]

还有另一个stackoverflow问题,它处理TaskAffinity的这个主题:

Two main activities in AndroidManifest.xml

我可以找到的TaskAffinity的最佳解释也是stackoverflow问题:

Android Task Affinity Explanation