为什么在调用StartActivityForResult时mvvmcross会关闭当前活动?
问题描述:
我是移动跨平台开发新手。我使用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);
}
...
}
答
MvvmCross什么都不做这样的。这是Android。它不会保证您的活动在进入后台时保持活跃状态,只要它喜欢就可以将其关闭。
但是,您的问题是,您在Activity
上使用NoHistory = true
这样,当离开它时,没有人能够返回到此Activity
。