gpt4 book ai didi

c# - 在 Uwp 中只运行一次代码

转载 作者:太空宇宙 更新时间:2023-11-03 21:04:03 26 4
gpt4 key购买 nike

我正在创建一个 Uwp 应用程序,如果某个条件匹配且仅一次,我只需要向用户显示一次性通知。现在执行此操作的函数在类型类库 n 的另一个项目中定义文件 check.cs,我在后台任务项目和另一个 uwp 类型项目中调用此函数。

尝试过的方法:

经典方法:

  1. 声明了一个 bool 变量 say count 并将值初始化为 true。
  2. 当条件匹配并显示通知时将计数设置为 false。因此现在通知不会再次显示。

代码://类check.cs

var one = true;
public static async Task Onetime()
{
if (x == 2 && one)
{
PopToast("Only once");
one = false;
}
}

app.xaml.cs 构造函数中的代码:

var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
localSettings.Values["one"] = "true";

函数内代码:

var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
string value = localSettings.Values["one"].ToString();
if(x==2 && value=="true")
{
PopToast("Only once");
localSettings.Values["one"] = "false";
}

但是这个问题在应用程序运行之前它工作正常,但是当应用程序关闭并再次打开时,变量的值再次初始化为 true。有什么解决方法吗?提前致谢。

最佳答案

看起来您是在属性/字段声明中对其进行初始化,因此它始终为真。这是我检查是否在给定设备上同步数据的实现。检查是否为 null(在第一次运行应用程序时),如果是,则将其初始化为应有的值,然后相应地设置应用程序数据。如果不是,则检索当前数据并相应地设置本地应用程序信息。我当然不是专业人士,但这似乎完全按预期运行。

object onedrive = localsettings.Values[_dataSyncSetting];
if (onedrive == null)
{
localsettings.Values[_dataSyncSetting] = true;
_isDataSyncEnabled = true;
_dataPolicy = _dataSync;
}
else
{
_isDataSyncEnabled = (Boolean)onedrive;
_dataPolicy = _isDataSyncEnabled ? _dataSync : _dataLocal;
}

编辑; _dataSyncSetting 是在同一个类中声明的const string

关于c# - 在 Uwp 中只运行一次代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42462035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com