Ich erstelle eine Uwp-App, wo ich nur den Benutzer eine einmalige Benachrichtigung anzeigen muss, wenn eine bestimmte Bedingung nur einmal und einmal übereinstimmt.Jetzt ist die Funktion, die dies in einem anderen definiert Projekt vom Typ Klassenbibliothek n der Datei check.cs und ich rufe diese Funktion in einem Hintergrund-Task-Projekt und in einem anderen uwp-Typ-Projekt.Führen Sie einen Code nur einmal in Uwp
Versuchte Methode:
klassischer Ansatz:
- eine Bool Variable erklärt sagen zählen und Wert auf true initialisiert.
- Wenn die Bedingung übereinstimmt und eine Benachrichtigung angezeigt wird, um die Anzahl auf "Falsch" zu setzen. Jetzt wird die Benachrichtigung nicht mehr angezeigt.
Code: // In der Klasse check.cs
var one = true;
public static async Task Onetime()
{
if (x == 2 && one)
{
PopToast("Only once");
one = false;
}
}
-Code in App.xaml.cs Konstruktor:
var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
localSettings.Values["one"] = "true";
Code in Funktion:
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";
}
Aber Das Problem funktioniert gut bis App läuft, aber wenn die App geschlossen und der Wert wieder geöffnet wird e der Variable wird wieder auf wahr initialisiert. Gibt es einen Workaround? Vielen Dank im Voraus.
Ich glaube nicht, dass Sie den Wert auf "wahr" mit dem Konstruktor setzen möchten, da dies immer den Wert zuerst einstellen wird. Du willst stattdessen den Wert dort einlesen. –
Wo sollte ich es initialisieren? – Uwpbeginner