2015-09-07 43 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); 
相關問題