Vorrei sapere se c'è un flag "prima esecuzione" o simile in WP7. La mia app prende alcune cose dall'archiviazione isolata, quindi vorrei determinare se è necessario la prima volta. Attualmente sto usando un se per verificare se l'oggetto di memoria con nome esiste ma questo significa che non posso gestire alcun errore di perdita di memoria nel modo in cui vorrei.C'è un flag "prima esecuzione" in WP7
risposta
Non credo che ci sia una funzione integrata per questo ... ma so cosa intendi :-) Ho implementato "prima esecuzione" io stesso usando la memoria iso nell'open source khan academy for windows phone app. Tutto ciò che faccio è cercare in iso storage un file molto piccolo (ne scrivo solo un byte) ... se non c'è, è la prima volta che, se è lì, l'app è stata eseguita più di una volta. Sentitevi liberi di controllare la fonte e prendere la mia realizzazione, se vuoi :-)
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;
}
}
Come @HenryC suggerito in un commento sulla risposta accettata ho usato IsolatedStorageSettings per implementare il "comportamento Prima esecuzione", qui è il codice:
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;
}
}
A volte è necessario eseguire un'azione su ogni aggiornamento dall'archivio di Windows in caso di modifica della versione. Inserisci questo codice nella tua app.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. Flag "SingleInstanceHost" per Silverlight App
- 2. Acquisto in-app WP7
- 3. Deserializzazione JSON in WP7
- 4. Esiste un controllo Label in WP7?
- 5. WP7: Come mostrare un brindisi?
- 6. errore in esecuzione cpan la prima volta
- 7. Come posso montare un file in un contenitore, che non è disponibile prima della prima esecuzione?
- 8. eccezione windbg in sos.threads alla prima esecuzione
- 9. ottima esperienza di prima esecuzione
- 10. Come modificare VisualState in WP7
- 11. Rileva DesignTime in WP7 codice
- 12. come controllare InternetConnection in wp7?
- 13. Creazione di script Perl * esecuzione automatica * con flag
- 14. bitwise controllare se flag flag
- 15. Come impostare un timer nelle applicazioni wp7?
- 16. wp7 Feedback aptico
- 17. Come posso rimuovere un flag in C?
- 18. Come rimuovere un flag in Java
- 19. Rilevamento della prima esecuzione di un'app
- 20. Sfondo sull'icona WP7
- 21. WP7 Controllo WebBrowser zoom
- 22. esecuzione di codice prima di qualsiasi azione
- 23. Come aggiungere gli elementi a un oggetto PanoramaItem in WP7
- 24. WP7 - Animazione aggiungi/rimuovi elemento in un ListBox
- 25. Descrizione comandi overlay display alla prima esecuzione
- 26. Stringhe mutabili in WP7 C#/XNA?
- 27. Combinazione di flag -v e -A flag in grep
- 28. Manipolazione degli incendi Avviata manualmente in WP7
- 29. Esecuzione di un archivio jar in un'applicazione Java in esecuzione
- 30. Modificare la pagina in un'applicazione WP7?
È davvero fantastico! Bello e facile! – deanvmc
intelligente. potresti invece scrivere una versione #, in modo da poter rilevare gli aggiornamenti, o per le app con supporto di prova, potresti anche usarla per rilevare un aggiornamento da prova a pagamento. –
Ciao Joel, hai anche considerato di non scrivere il byte? Mi chiedo se hai optato per questo sulla base di eventuali osservazioni durante il test. Nei miei brevi test in quest'area ho trovato FileExists che funziona bene senza quello. –