2015-09-07 44 views
0

从现有项目中的应用程序我如何执行以下任务:如何启动在MvvmCross

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

  1. 此任务需要什么。

  2. 如何将数据传递到Launched-app和主应用程序。

  3. 如何为此进行调试?

感谢

+0

这工作没有任何不同,那么在MvvmCross任何其他Android/Xamarin代码。你应该启动一个'Intent'并用它可用的方法向它添加一些数据。 – Martijn00

回答

0

看看如何在web浏览器,短信,电子邮件和电话的插件完成。正如@ martjin00在评论中提到的那样,你使用了一种叫做Intent的东西来启动Activity。无论是你自己还是其他人的Activity无所谓。

Intent允许开发者输入额外的参数。但是,它们显然需要是目标Activity在收到Intent时能够理解的格式。如果你知道这一点(如果你正在启动你自己的应用程序,你显然应该),那么这样做是相当微不足道的。

上面提到的插件就是这样做的。他们使用一组定义好的参数调用默认应用程序,这些参数可以传递给Intent。插件只是公开这个,所以它可以从PCL触发,并且如果你为每个平台实现你自己的东西,可能会在多个平台上工作。

让我们说我们有ActivityA这是你想要启动的目标Activity。这需要一些数据块作为参数:

public class A : Activity 
{ 
    protected override OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 
     var animal = Intent.GetStringExtra ("animal"); 
    } 
} 

然后源Activity现在要开始一个给它的动物,可以说

var intent = new Intent (typeof(A)); 
intent.PutExtra ("animal", "horse"); 
StartActivity (intent); 

基本上就是这样。如果一个没有在自己的应用程序中包含但在外部应用程序,该Intent会有点不同:

var intent = PackageManager.GetLaunchIntentForPackage ("some.other.App"); 
intent.PutExtra ("animal", "horse"); 
StartActivity (intent); 
相关问题