2016-12-14 35 views
0

我是移动跨平台开发新手。我使用Xamarin和Mvvmcross来创建应用程序。为什么在调用StartActivityForResult时mvvmcross会关闭当前活动?

我目前面临的问题是,当我想要打开蓝牙的请求时,调用StartActivityForResult(),我的活动活动正在关闭,并且在单击对话框活动后不会显示回来。

当我以前使用这种方法在一个简单的Xamarin.Android应用程序之前,它按预期工作,显示一个对话框请求,用于打开蓝牙,而活动仍处于活动状态。

当我使用Intent启动通过内置邮件应用程序发送电子邮件的活动时,也会发生类似的问题。发送电子邮件后,我没有重定向到我的应用程序,我的应用程序正在被暂停。

这里是我的方法:

[Activity(NoHistory = true, ScreenOrientation = ScreenOrientation.Portrait)] 
    public class MainView : MvxAppCompatActivity 
    { 
     ... 
     protected override void OnViewModelSet() 
     { 
      base.OnViewModelSet(); 
      ... 
      var bluetoothAdapter = BluetoothAdapter.DefaultAdapter; 

      if(!bluetoothAdapter.IsEnabled) 
       RequestEnableBluetooth(); 
      ... 
     } 
     public void RequestEnableBluetooth() 
     { 
      Intent turnOnBtIntent = new  
       Intent(BluetoothAdapter.ActionRequestEnable); 
      StartActivityForResult(turnOnBtIntent, 0); 
     } 
     ... 
    } 

回答

2

MvvmCross什么都不做这样的。这是Android。它不会保证您的活动在进入后台时保持活跃状态​​,只要它喜欢就可以将其关闭。

但是,您的问题是,您在Activity上使用NoHistory = true这样,当离开它时,没有人能够返回到此Activity

相关问题