UWP,我不能禁用暂停。我需要你的知识。 这是我知道问题的简单例子。它的反向增加/减少应用程序。
实际上,我想要监控设备的温度356 x 24小时而不会停止。我希望在挂起模式下增加值++。
但UWP在上任期间不起作用.. 为什么?
上传的代码在Github.com上。您可以测试我的简单应用程序。 https://github.com/bidasknakayama/Basic
这是我的环境。它是台式电脑。
Package.appxmanifest
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
IgnorableNamespaces="uap mp rescap">
<Capabilities>
<Capability Name="internetClient" />
<rescap:Capability Name="extendedBackgroundTaskTime"/>
<rescap:Capability Name="extendedExecutionUnconstrained"/>
<DeviceCapability Name="serialcommunication">
<Device Id="any">
<Function Type="name:serialPort" />
</Device>
</DeviceCapability>
</Capabilities>
</Package>
App.xaml.cs https://github.com/bidasknakayama/Basic/blob/master/Basic/App.xaml.cs
我尝试在位置(A)(B)(C)(D)处插入 ExtendedExecutionSession 或 ExtendedExecutionForegroundSession 。但没有成功。
BaseViewModel.cs https://github.com/bidasknakayama/Basic/blob/master/Basic/ViewModels/BaseViewModel.cs
protected override void OnActivate()
{
base.OnActivate();
_eventAggregator.Subscribe(this);
// Background Run.
Task.Run(MainLoop);
}
private async Task MainLoop()
{
while (true)
{
Counter = _counter + 1;
await Task.Delay(500);
await ImportantNoStopJob();
}
}
private async Task ImportantNoStopJob() // Important. I do not want to stop it during suspend.
{
Temp = _temp - 1;
await Task.Delay(500);
}
问题很简单。
如何在暂停期间增加值?
更新#1
根据Raymond的建议(谢谢!),I found good article.。它有CoreWindow.Activated事件。
Window.Current.CoreWindow.Activated += CoreWindow_OnActivated;
使用此代码,我得到 ExtendedExecutionResult.Allowed 。这很好。
但我还有问题。在发布模式下,我试图模拟&#34;暂停&#34;。代码永远不会工作......我想。我的后台工作试图修改UI。然后,代码可能无法工作..但我不知道为什么......
我上传了ver 2代码,你可以轻松测试。
https://github.com/bidasknakayama/Basic2
更新#2
我想,我们不应该使用&#34;暂停&#34;这个测试的按钮。即使我们编写此代码也会使其成为真正暂停。对 ? 如果是这样,我们现在可以解决这个问题......
我测试了一些,看起来很不错。