我在xamarin中有一个可以监听文件夹并在创建文件时执行某些操作的应用。但是,关键是我需要能够:
我的回应开始于
Window.Current.Activate();
但仅在我的应用程序没有最小化(该应用程序不在第一视图中)的情况下才有效我已经尝试过了:
IList<AppDiagnosticInfo> infos = await AppDiagnosticInfo.RequestInfoForAppAsync();
IList<AppResourceGroupInfo> resourceInfos = infos[0].GetResourceGroups();
await resourceInfos[0].StartSuspendAsync();
但是视觉工作室告诉我
AppResourceGroupInfo没有为StartSuspendAsync()定义
但是文档中提到了AppResourceGroupInfo.StartSuspendAsync Method
有人有主意吗?
更新[2020-04-29 16:48]:
这是一个pcl项目
目的是使用依赖服务在平台的功能上有不同的比例(已经实现只是需要前/后
pcl中的接口
public interface IWindowManager
{
void Minimize();
void Maximize();
}
在uwp中
class WindowManager : IWindowManager
{
public async void Maximize()
{
try
{
Window.Current.Activate();
}
catch(Exception ex)
{
DependencyService.Get<IErrorLogger>().LogError(ex);
}
}
public async void Minimize()
{
IList<AppDiagnosticInfo> infos = await AppDiagnosticInfo.RequestInfoForAppAsync();
IList<AppResourceGroupInfo> resourceInfos = infos[0].GetResourceGroups();
resourceInfos[0].StartSuspendAsync();
}
}
就像我说StartSuspendAsync()遇到问题
AppResourceGroupInfo没有为StartSuspendAsync()定义
源自官方文档,Windows 10更新1803(内部版本17134)中的StartSuspendAsync()
。因此,请将UWP项目的迷你版本编辑为17134。
但是仅在我的应用程序没有最小化(应用程序不在第一视图中)时,该选项才起作用
为了制作应用程序foreground,您可以使用以下代码。
IEnumerable<AppListEntry> appListEntries = await Package.Current.GetAppListEntriesAsync();
await appListEntries.First().LaunchAsync();