我正在开发一个Xamarin Android项目,我希望将活动作为不同的起点(例如app1
和app2
)。
为实现这一目标,我添加了选项" MainLauncher = true"到似乎开始正常工作的那些活动的活动属性:
[Activity(
Label = "App1",
Icon = "@drawable/app1_app_icon",
MainLauncher = true
)]
现在的问题是,如果我打开app1
,请返回菜单屏幕 - 不关闭它 - 同时打开app2
,已经运行的app1
是显示。 App2
未启动。这不是我预期会发生的事情。
有没有办法让app2
在app1
正在运行的同时开始工作?
我知道可以多次启动一项活动,但这不是我想要的。每项活动只应开始一次。
答案 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问题: