我有一个包含三个页面的应用:MainPage
,Page2
和Page3
。在MainPage
我有我的相机,在Page2
我有来自MainPage的扫描的历史记录,而我的Page3
有关于该应用的一些信息。我的问题是当我暂停和恢复时。它暂停了,但是当我按下Visual Studio LifeStyle Events上的恢复按钮时,我收到以下错误A remote operation is taken longer then expected
。正如您所看到的,我的应用程序需要很长时间才能恢复。
在我的App.xaml.cs
我有这个OnSuspending方法:
public App()
{
this.InitializeComponent();
this.Suspending += this.OnSuspending;
}
private void OnSuspending(object sender, SuspendingEventArgs e)
{
var deferral = e.SuspendingOperation.GetDeferral();
deferral.Complete();
}
在我的MainPage
我有这个恢复方法:
public MainPage()
{
this.InitializeComponent();
Application.Current.Resuming += App_resuming;
}
async void App_resuming(object sender, object
{
if (Frame.Content == this)
await InitializeCamera();
}
我想在暂停应用程序时必须丢弃相机,所以我在MainPage
处创建了一个暂停方法,我在那里处理了相机
void App_suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e)
{
_mediaCapture.Dispose();
}
所以,重新提出我的问题:我在做什么是对的?我错过了什么?谢谢。
答案 0 :(得分:1)
当我没有将相机对象暂停时,我可以重现你的问题,你说你已经尝试但仍需要更长的时间。我可以建议你检查相机对象,如果它真的被处置。要确保您可以在OnSuspend中添加以下代码行:
await cameraCapture.StopPreview();
cameraCapture.Dispose();
cameraCapture = null;
并在初始化相机之前恢复,再次创建对象。