如何从MvvmCross中的现有项目启动应用程序

时间:2015-09-07 01:23:19

标签: xamarin.android mvvmcross

如何执行以下任务:

我有主应用程序将启动不同的应用程序。

  1. 此任务需要什么。

  2. 如何向/从启动应用和主应用传递数据。

  3. 如何调试?

  4. 由于

1 个答案:

答案 0 :(得分:0)

看看如何在WebBrowser,SMS,电子邮件和电话插件中完成此操作。正如评论中提到的@ 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);