Chciałbym wiedzieć, czy w WP7 jest flaga "first run" lub podobna. Moja aplikacja pobiera pewne rzeczy z odizolowanego miejsca, więc chciałbym sprawdzić, czy jest to konieczne po raz pierwszy. Obecnie używam if, aby sprawdzić, czy wymieniony obiekt pamięci istnieje, ale oznacza to, że nie mogę obsłużyć żadnych błędów utraty pamięci w sposób, w jaki chciałbym.Czy jest flaga "first run" w WP7
Odpowiedz
Nie sądzę, że jest wbudowana funkcja tego ... ale wiem, co masz na myśli :-) Zaimplementowałem "pierwsze uruchomienie" samodzielnie przy użyciu pamięci masowej iso w open source khan academy for windows phone app. Wszystko, co robię, to zajrzeć do iso storage na bardzo mały plik (po prostu piszę do niego jeden bajt) ... jeśli go tam nie ma, to po raz pierwszy, jeśli jest, aplikacja była uruchamiana więcej niż raz. Zachęcamy do zapoznania się źródła i wziąć moją implementację jeśli chcesz :-)
private static bool hasSeenIntro;
/// <summary>Will return false only the first time a user ever runs this.
/// Everytime thereafter, a placeholder file will have been written to disk
/// and will trigger a value of true.</summary>
public static bool HasUserSeenIntro()
{
if (hasSeenIntro) return true;
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
if (!store.FileExists(LandingBitFileName))
{
// just write a placeholder file one byte long so we know they've landed before
using (var stream = store.OpenFile(LandingBitFileName, FileMode.Create))
{
stream.Write(new byte[] { 1 }, 0, 1);
}
return false;
}
hasSeenIntro = true;
return true;
}
}
Jak @HenryC sugerowane w komentarzu zaakceptowanej odpowiedzi użyłem IsolatedStorageSettings do wdrożenia „zachowanie First Run”, tutaj to kod:
private static string FIRST_RUN_FLAG = "FIRST_RUN_FLAG";
private static IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
public bool IsFirstRun()
{
if (!settings.Contains(FIRST_RUN_FLAG))
{
settings.Add(FIRST_RUN_FLAG, false);
return true;
}
else
{
return false;
}
}
Czasami należy wykonać pewne działanie dla każdej aktualizacji ze sklepu Windows, jeśli istnieje zmiana wersji. Umieść ten kod w swojej aplikacji.xaml.cs
private static string FIRST_RUN_FLAG = "FIRST_RUN_FLAG";
private static IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
private static string _CurrentVersion;
public static string CurrentVersion
{
get
{
if (_CurrentVersion == null)
{
var versionAttribute = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).FirstOrDefault() as AssemblyFileVersionAttribute;
if (versionAttribute != null)
{
_CurrentVersion = versionAttribute.Version;
}
else _CurrentVersion = "";
}
return _CurrentVersion;
}
}
public static void OnFirstUpdate(Action<String> action)
{
if (!settings.Contains(FIRST_RUN_FLAG))
{
settings.Add(FIRST_RUN_FLAG, CurrentVersion);
action(CurrentVersion);
}
else if (((string)settings[FIRST_RUN_FLAG]) != CurrentVersion) //It Exits But Version do not match
{
settings[FIRST_RUN_FLAG] = CurrentVersion;
action(CurrentVersion);
}
}
- 1. Flaga "SingleInstanceHost" dla aplikacji Silverlight
- 2. Dlaczego isLockTaskPermitted flaga jest fałszywy
- 3. Czy sortujesz kawałki run?
- 4. AWK: czy jest jakaś flaga do zignorowania komentarzy?
- 5. Czy jest jakaś globalna flaga dla kompilacji statycznej Groovy?
- 6. WP7 Zakup w aplikacji
- 7. Dlaczego LINQ .Where (predicate) .First() jest szybszy niż .First (predykat)?
- 8. Czy istnieje "run stack" podobny do `cabal run`?
- 9. Code First vs. Database First
- 10. Prośba o uprawnienia w Run Run Ionic
- 11. Wykryj DesignTime w kodzie WP7
- 12. Nie wiem, czy jest to wykonalne: H2: not (: first-line)
- 13. Flaga błędu instalatora NSIS
- 14. Flaga kompilacji gcc
- 15. Flaga openrefine zmieniono wiersze
- 16. HttpWebRequest Limit czasu w WP7
- 17. Jak zmienić VisualState w WP7
- 18. WP7 HttpWebRequest bez buforowania
- 19. Jaki algorytm szyfrowania jest używany w DPAPI dla WP7?
- 20. WP7: Edytuj zrzut ekranu, gdy aplikacja jest w tle (Mango)
- 21. WP7 Zapobieganie przewijaniu ListBox
- 22. Zmienić stronę w aplikacji WP7?
- 23. Deserializowanie JSON w pakiecie WP7
- 24. Co robi flaga fermeny?
- 25. wp7 poziomy przesunięcia zaznaczenie
- 26. Okno dialogowe alertu WP7
- 27. implementacja stylu czatu WP7
- 28. Co oznacza flaga npm -i?
- 29. Co to jest flaga "z" w woluminach kontenera kontenerowego - od opcji?
- 30. WP7 sposób oceny utworu
To naprawdę fajne! Ładne i łatwe! – deanvmc
sprytny. zamiast tego można napisać wersję #, aby można było wykryć aktualizacje lub aplikacje z obsługą próbną, można też użyć jej do wykrywania aktualizacji z wersji próbnej na płatną. –
Cześć Joel, czy też uważasz, że nie piszesz bajtu? Zastanawiasz się, czy zdecydowałeś się na to na podstawie jakichkolwiek obserwacji podczas testów. W moich własnych krótkich testach w tym obszarze znalazłem FileExists działa dobrze bez tego. –