Windows Dev Center

Linguaggio: HTML | XAML

Guida introduttiva: Dati mobili dell'app (XAML)

Scopri come archiviare e recuperare impostazioni e file dall'archivio dei dati mobili dell'app. Per informazioni sull'archivio dei dati mobili dell'app e sulla sua utilità, vedi Dati mobili dell'app.

Roadmap: che relazione c'è tra questo argomento e gli altri? Vedi:

Eseguire la registrazione per ricevere notifica in caso di modifiche dei dati mobili

Esegui la registrazione per l'evento DataChanged. Questo esempio imposta DataChangeHandler come gestore per le modifiche dei dati mobili.


Private Sub InitHandlers()
    AddHandler Windows.Storage.ApplicationData.Current.DataChanged, AddressOf DataChangeHandler
End Sub

Private Sub DataChangeHandler(ByVal appData As Windows.Storage.ApplicationData, ByVal o As Object)
    ' TODO: Refresh your data
End Sub

Recuperare i contenitori per le impostazioni e i file dell'app

Usa la proprietà ApplicationData.RoamingSettings per recuperare le impostazioni e la proprietà ApplicationData.RoamingFolder per recuperare i file.


Dim roamingSettings As Windows.Storage.ApplicationDataContainer = Windows.Storage.ApplicationData.Current.RoamingSettings
Dim roamingFolder As Windows.Storage.StorageFolder = Windows.Storage.ApplicationData.Current.RoamingFolder

Scrivere dati in un'impostazione

Usa la proprietà ApplicationDataContainer.Values per accedere alle impostazioni nel contenitore roamingSettings recuperato nella sezione precedente. Questo esempio crea un'impostazione denominata exampleSetting e un'impostazione denominata HighPriorityadatta per il trasferimento di info critiche in termini di tempo, come lo stato dell'app.

Nota  L'impostazione HighPriority non ha alcun effetto nelle app di Windows Phone Store.


' Simple setting
roamingSettings.Values("exampleSetting") = "Hello World";
' High Priority setting, for example, last page position in book reader app
roamingSettings.Values("HighPriority") = "65";


Un oggetto ApplicationDataCompositeValue contiene le impostazioni a cui è necessario accedere in modo atomico. Questo esempio crea un'impostazione composita denominata exampleCompositeSetting e la aggiunge al contenitore roamingSettings.


' Composite setting

Dim composite As New Windows.Storage.ApplicationDataCompositeValue
composite("intVal") = 1
composite("strVal") = "string";

roamingSettings.Values("exampleCompositeSetting") = composite

Chiama il metodo ApplicationDataContainer.CreateContainer per creare un contenitore di impostazioni. Questo esempio crea un contenitore di impostazioni denominato exampleContainer e aggiunge un'impostazione denominata exampleSetting. Il valore Always dall'enumerazione ApplicationDataCreateDisposition indica che il contenitore deve essere creato se non esiste già.


' Setting in a container

Dim container As Windows.Storage.ApplicationDataContainer = 
   roamingSettings.CreateContainer("exampleContainer", Windows.Storage.ApplicationDataCreateDisposition.Always)

If roamingSettings.Containers.ContainsKey("exampleContainer") Then
    roamingSettings.Containers("exampleContainer").Values("exampleSetting") = "Hello World"
End If

Leggere dati da un'impostazione

Usa la proprietà ApplicationDataContainer.Values per accedere all'impostazione exampleSetting nel contenitore roamingSettings.


' Simple setting

Dim value As Object = roamingSettings.Values("exampleSetting")

Usa la proprietà ApplicationDataContainer.Values per accedere all'impostazione exampleCompositeSetting nel contenitore roamingSettings.


' Composite setting

Dim composite As Windows.Storage.ApplicationDataCompositeValue = 
   CType(roamingSettings.Values("exampleCompositeSetting"), Windows.Storage.ApplicationDataCompositeValue)

If composite Is Nothing Then
   ' No data
Else
   ' Access data in composite("intVal") and composite("strVal")
End If

Usa la proprietà ApplicationDataContainer.Values per accedere all'impostazione exampleSetting nel contenitore exampleContainer.


' Setting in a container

Dim hasContainer As Boolean = roamingSettings.Containers.ContainsKey("exampleContainer")
Dim hasSetting As Boolean = False

If hasContainer Then
    hasSetting = roamingSettings.Containers("exampleContainer").Values.ContainsKey("exampleSetting")
End If

Scrivere dati in un file

Usa le API per i file, come Windows.Storage.StorageFolder.CreateFileAsync e Windows.Storage.FileIO.WriteTextAsync, per creare e aggiornare un file nell'archivio dei dati mobili dell'app. Questo esempio crea un file denominato dataFile.txt nel contenitore roamingFolder e scrive la data e l'ora correnti nel file. Il valore ReplaceExisting dall'enumerazione CreationCollisionOption indica che il file deve essere sostituito se già esistente.


Imports Windows.Globalization.DateTimeFormatting

Private Async Sub WriteTimestamp()
   Dim formatter As DateTimeFormatter = New DateTimeFormatter("longtime")

   Dim sampleFile As StorageFile = Await roamingFolder.CreateFileAsync("dataFile.txt", 
       CreationCollisionOption.ReplaceExisting)
   Await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTime.Now));
End Sub

Leggere dati da un file

Usa le API per i file, come Windows.Storage.StorageFolder.GetFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync e Windows.Storage.FileIO.ReadTextAsync, per aprire e leggere un file nell'archivio dei dati mobili dell'app. Questo esempio apre il file dataFile.txt creato nella sezione precedente e legge la data dal file. Per altri dettagli sul caricamento di risorse di tipo file da varie posizioni, vedi Come caricare risorse di tipo file.


Private Async Function ReadTimestamp() As Task
   Try
      Dim sampleFile As StorageFile = Await roamingFolder.GetFileAsync("dataFile.txt")
      Dim timestamp As string = Await FileIO.ReadTtextAsync(sampleFile)
      ' Data is contained in timestamp
   Catch e1 As Exception
      ' Timestamp not found
   End Try
End Function

Eliminare le impostazioni al termine

Chiama il metodo ApplicationDataContainerSettings.Remove per eliminare l'impostazione exampleSetting dal contenitore roamingSettings quando hai finito di usarla.


' Delete simple setting

roamingSettings.Values.Remove("exampleSetting")

Chiama il metodo ApplicationDataCompositeValue.Remove per eliminare l'impostazione composita exampleCompositeSetting dal contenitore roamingSettings quando hai finito di usarla.


' Delete composite setting

roamingSettings.Values.Remove("exampleCompositeSetting")

Chiama il metodo ApplicationDataContainer.DeleteContainer per eliminare il contenitore delle impostazioni exampleContainer quando hai finito di usarlo.


' Delete container

roamingSettings.DeleteContainer("exampleContainer")

Eseguire il roaming dei dati tra tipi diversi di dispositivi

Se pubblichi due versioni della tua app, una versione per Windows Store e una versione per Windows Phone Store, puoi trasferire i dati dell'app tra le app in esecuzione sui due diversi tipi di dispositivo. Per eseguire il roaming di dati tra diverse versioni dell'app su diversi tipi di dispositivo, assegna lo stesso nome della famiglia di pacchetti a ciascuna versione dell'app.

Per altre info, vedi Trasferimento dei dati tra un'app di Windows Store e un'app di Windows Phone Store.

Osservazioni

Per ogni app esiste una quota per i dati mobili. Verifica la proprietà ApplicationData.RoamingStorageQuota per determinare la dimensione totale consentita per i dati mobili. Se i dati mobili superano la quota, non ne verrà eseguito il roaming fino a quando le dimensioni non diventano di nuovo minori della quota.

Argomenti correlati

Attività
Come caricare risorse di tipo file
Guida introduttiva: Dati locali dell'app
Guida introduttiva: Dati temporanei dell'app
Informazioni concettuali
Accesso ai dati dell'app con Windows Runtime
Linee guida
Linee guida per i dati mobili dell'app
Riferimento
Windows.Storage.ApplicationData
Windows.Storage.ApplicationDataCompositeValue
Windows.Storage.ApplicationDataContainer
Windows.Storage.ApplicationDataContainerSettings
Esempi
Esempio di dati dell'applicazione

 

 

Mostra:
© 2015 Microsoft