Language: HTML | XAML

Schnellstart: Roaming von App-Daten (Windows-Runtime-Apps mit C#/VB/C++ und XAML)

Applies to Windows and Windows Phone

Hier erfahren Sie, wie Sie Einstellungen und Daten im servergespeicherten App-Datenspeicher speichern und daraus abrufen. Informationen zum Roamingspeicher für App-Daten und zu den Vorteilen seiner Verwendung finden Sie unter Roaming von App-Daten.

Roadmap: Wie hängt dieses Thema mit anderen zusammen? Informationen finden Sie unter:

Registrieren, um Benachrichtigungen bei der Änderung von Roamingdaten zu erhalten

Registrieren Sie das DataChanged-Ereignis. In diesem Beispiel wird DataChangeHandler als Handler für Änderungen an Roamingdaten festgelegt.

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

Abrufen der Container für die Einstellungen und Dateien der App

Rufen Sie mit der ApplicationData.RoamingSettings-Eigenschaft die Einstellungen und mit der ApplicationData.RoamingFolder-Eigenschaft die Dateien ab.

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

Schreiben von Daten in eine Einstellung

Verwenden Sie die ApplicationDataContainer.Values-Eigenschaft, um auf die Einstellungen im Container roamingSettings zuzugreifen, den wir im vorherigen Abschnitt abgerufen haben. In diesem Beispiel werden eine Einstellung namens exampleSetting und eine Einstellung namens HighPriority erstellt, die am besten dafür geeignet sind, zeitkritische Infos zu übertragen, z. B. den App-Status.

  • Applies to Windows Phone

Die HighPriority-Einstellung wirkt sich nicht in Windows Phone-Apps aus.

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

Ein ApplicationDataCompositeValue-Objekt enthält Einstellungen, auf die atomisch zugegriffen werden muss. In diesem Beispiel wird eine Verbundeinstellung namens exampleCompositeSetting erstellt und dem Container roamingSettings hinzugefügt.

' Composite setting

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

roamingSettings.Values("exampleCompositeSetting") = composite

Rufen Sie die ApplicationDataContainer.CreateContainer-Methode auf, um einen Einstellungscontainer zu erstellen. In diesem Beispiel wird ein Einstellungscontainer namens exampleContainer erstellt und eine Einstellung namens exampleSetting hinzugefügt. Der Wert Always aus der ApplicationDataCreateDisposition-Enumeration gibt an, dass der Container erstellt wird, sofern er noch nicht vorhanden ist.

' 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

Lesen von Daten aus einer Einstellung

Verwenden Sie die ApplicationDataContainer.Values-Eigenschaft, um auf die Einstellung exampleSetting im Container roamingSettings zuzugreifen.

' Simple setting

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

Verwenden Sie die ApplicationDataContainer.Values-Eigenschaft, um auf die Einstellung exampleCompositeSetting im Container roamingSettings zuzugreifen.

' 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

Verwenden Sie die ApplicationDataContainer.Values-Eigenschaft, um auf die Einstellung exampleSetting im Container exampleContainer zuzugreifen.

' 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

Schreiben von Daten in eine Datei

Erstellen und aktualisieren Sie mit den Datei-APIs, z. B. Windows.Storage.StorageFolder.CreateFileAsync und Windows.Storage.FileIO.WriteTextAsync, eine Datei im Speicher für das Roaming für App-Daten. In diesem Beispiel wird im Container roamingFolder die Datei dataFile.txt erstellt, in die das aktuelle Datum und die Uhrzeit geschrieben werden. Der Wert ReplaceExisting aus der CreationCollisionOption-Enumeration gibt an, dass die Datei ersetzt werden soll, falls sie bereits vorhanden ist.

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

Lesen von Daten aus einer Datei

Öffnen und lesen Sie mit den Datei-APIs, z. B. Windows.Storage.StorageFolder.GetFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsync und Windows.Storage.FileIO.ReadTextAsync, eine Datei im Roaming-App-Datenspeicher. In diesem Beispiel wird die im vorherigen Abschnitt erstellte Datei dataFile.txt geöffnet und das Datum aus der Datei gelesen. Einzelheiten zum Laden von Dateiressourcen aus verschiedenen Speicherorten finden Sie unter So wird's gemacht: Laden von Dateiressourcen.

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

Löschen nicht mehr benötigter Einstellungen

Rufen Sie die ApplicationDataContainerSettings.Remove-Methode auf, um die Einstellung exampleSetting aus dem roamingSettings-Container zu löschen, wenn Sie sie nicht mehr benötigen.

' Delete simple setting

roamingSettings.Values.Remove("exampleSetting")

Rufen Sie die ApplicationDataCompositeValue.Remove-Methode auf, um die Verbundeinstellung exampleCompositeSetting aus dem roamingSettings-Container zu löschen, wenn Sie sie nicht mehr benötigen.

' Delete composite setting

roamingSettings.Values.Remove("exampleCompositeSetting")

Rufen Sie die ApplicationDataContainer.DeleteContainer-Methode auf, um den Einstellungscontainer exampleContainer zu löschen, wenn Sie ihn nicht mehr benötigen.

' Delete container

roamingSettings.DeleteContainer("exampleContainer")

Roaming von Daten mit unterschiedlichen Gerätetypen

Wenn Sie zwei Versionen einer App veröffentlichen – eine Version für den Windows Store und eine Version für den Windows Phone Store – können Sie App-Daten-Roaming für die unterschiedlichen Gerätetypen verwenden. Weisen Sie jeder Version der App denselben Paketfamiliennamen (Package Family Name, PFN) zu, um Datenroaming zwischen verschiedenen Versionen Ihrer App auf verschiedenen Gerätetypen zu implementieren.

Weitere Infos finden Sie unter Roaming von Daten zwischen Windows Store-Apps und Windows Phone Store-Apps.

Anmerkungen

Jede App besitzt ein Kontingent für das Roaming von App-Daten. Überprüfen Sie die ApplicationData.RoamingStorageQuota-Eigenschaft, um die Gesamtgröße der zulässigen Roamingdaten festzustellen. Überschreiten Ihre Roamingdaten das Kontingent, ist das Roaming erst wieder möglich, wenn der Umfang geringer als das Kontingent ist.

Verwandte Themen

Aufgaben
So wird's gemacht: Laden von Dateiressourcen
Schnellstart: Lokale App-Daten
Schnellstart: Temporäre App-Daten
Konzept
Zugriff auf App-Daten mit der Windows-Runtime
Richtlinien
Richtlinien für das Roaming von App-Daten
Referenz
Windows.Storage.ApplicationData
Windows.Storage.ApplicationDataCompositeValue
Windows.Storage.ApplicationDataContainer
Windows.Storage.ApplicationDataContainerSettings
Beispiele
Beispiel für Anwendungsdaten

 

 

Anzeigen:
© 2014 Microsoft