Xamarin.android 如何从MvvmCross中的现有项目启动应用程序
如何执行以下任务: 我的主应用程序将启动不同的应用程序Xamarin.android 如何从MvvmCross中的现有项目启动应用程序,xamarin.android,mvvmcross,Xamarin.android,Mvvmcross,如何执行以下任务: 我的主应用程序将启动不同的应用程序 这项任务需要什么 如何向已启动的应用程序和主应用程序传递数据 如何对此进行调试 谢谢看看这是如何在网络浏览器、短信、电子邮件和电话插件中实现的。正如在评论中提到的@martjin00,您使用一种称为意图的东西来启动活动。无论是您自己的活动还是其他人的活动都无关紧要 Intent允许开发人员输入额外的参数。但是,当目标活动收到意图时,它们显然需要采用目标活动能够理解的格式。如果您知道这一点(如果您正在启动自己的应用程序,您显然应该知道),那么
谢谢看看这是如何在网络浏览器、短信、电子邮件和电话插件中实现的。正如在评论中提到的@martjin00,您使用一种称为
意图的东西来启动活动
。无论是您自己的活动还是其他人的活动
都无关紧要
Intent
允许开发人员输入额外的参数。但是,当目标活动
收到意图
时,它们显然需要采用目标活动
能够理解的格式。如果您知道这一点(如果您正在启动自己的应用程序,您显然应该知道),那么这样做就相当简单了
上面提到的插件正是这样做的。他们使用一组已定义的参数调用默认应用程序,这些参数可以传递给Intent
。插件只是公开了这一点,因此它可以从PCL触发,如果您为每个平台实现自己的东西,那么它可能在多个平台上工作
假设我们有活动
A,这是您想要启动的目标活动
。它以一些数据作为参数:
public class A : Activity
{
protected override OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
var animal = Intent.GetStringExtra ("animal");
}
}
然后源活动B现在想要开始A给它一个动物,比如说马
基本上就是这样。如果A不包含在您自己的应用程序中,而是包含在外部应用程序中,则的意图将有所不同:
var intent = PackageManager.GetLaunchIntentForPackage ("some.other.App");
intent.PutExtra ("animal", "horse");
StartActivity (intent);
这与MvvmCross中的任何其他Android/Xamarin代码没有什么不同。您应该启动一个Intent
,并使用可用的方法向其中添加一些数据。
var intent = PackageManager.GetLaunchIntentForPackage ("some.other.App");
intent.PutExtra ("animal", "horse");
StartActivity (intent);