如何从 MvvmCross 中的现有项目启动应用程序
How to launch apps from existing project in MvvmCross
如何完成以下任务:
我有主应用程序可以启动不同的应用程序。
这个任务需要什么。
如何传递数据to/from启动的应用程序和主应用程序。
如何调试?
谢谢
看看这是如何在 WebBrowser、SMS、Email 和 Phone 插件中完成的。正如 @martjin00 在评论中提到的,您使用一种叫做 Intent
的东西来启动 Activity
。是自己的还是别人的Activity
都无所谓。
Intent
允许开发人员输入额外的参数。但是,它们显然需要是目标 Activity
在收到 Intent
时能够理解的格式。如果您知道这一点(如果您要启动自己的应用程序,您显然应该知道),那么这样做就很简单了。
提到的插件正是这样做的。他们使用一组定义的参数调用默认应用程序,这些参数可以传递给 Intent
。插件只是暴露了它,所以它可以从 PCL 触发,如果你为每个平台实现自己的东西,它可能会在多个平台上工作。
假设我们有 Activity
A,这是您要启动的目标 Activity
。它需要一些数据作为参数:
public class A : Activity
{
protected override OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
var animal = Intent.GetStringExtra ("animal");
}
}
然后来源 Activity
B 现在想开始 A 给它一个动物,假设 马.
var intent = new Intent (typeof(A));
intent.PutExtra ("animal", "horse");
StartActivity (intent);
基本上就是这样。如果 A 不包含在您自己的应用程序中,而是包含在外部应用程序中,则 Intent
会有点不同:
var intent = PackageManager.GetLaunchIntentForPackage ("some.other.App");
intent.PutExtra ("animal", "horse");
StartActivity (intent);
如何完成以下任务:
我有主应用程序可以启动不同的应用程序。
这个任务需要什么。
如何传递数据to/from启动的应用程序和主应用程序。
如何调试?
谢谢
看看这是如何在 WebBrowser、SMS、Email 和 Phone 插件中完成的。正如 @martjin00 在评论中提到的,您使用一种叫做 Intent
的东西来启动 Activity
。是自己的还是别人的Activity
都无所谓。
Intent
允许开发人员输入额外的参数。但是,它们显然需要是目标 Activity
在收到 Intent
时能够理解的格式。如果您知道这一点(如果您要启动自己的应用程序,您显然应该知道),那么这样做就很简单了。
提到的插件正是这样做的。他们使用一组定义的参数调用默认应用程序,这些参数可以传递给 Intent
。插件只是暴露了它,所以它可以从 PCL 触发,如果你为每个平台实现自己的东西,它可能会在多个平台上工作。
假设我们有 Activity
A,这是您要启动的目标 Activity
。它需要一些数据作为参数:
public class A : Activity
{
protected override OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
var animal = Intent.GetStringExtra ("animal");
}
}
然后来源 Activity
B 现在想开始 A 给它一个动物,假设 马.
var intent = new Intent (typeof(A));
intent.PutExtra ("animal", "horse");
StartActivity (intent);
基本上就是这样。如果 A 不包含在您自己的应用程序中,而是包含在外部应用程序中,则 Intent
会有点不同:
var intent = PackageManager.GetLaunchIntentForPackage ("some.other.App");
intent.PutExtra ("animal", "horse");
StartActivity (intent);