在后台任务中保留数据的推荐方法是什么? [UWP/W/WP 个应用程序]

What is the recommended way to persist the data in background task? [UWP/W/WP apps]

问题很简单,但我真的找不到任何示例来证明我正在努力实现的目标,也许是我没有得到 uwp 应用程序中后台任务的概念(或者windows / windows phone 8).

我正在创建一个正在轮询某些数据(交通事故)的应用程序,并且希望能够通知用户关闭的数据,即使他没有使用该应用程序。所以我想我会使用后台任务。 (我希望我做对了那部分)。

所以在后台任务中,我设置为 运行 定时器 15 分钟,在 "InternetAvailable" 的条件下,我异步获取数据,一旦完成,我' m 根据需要完成延迟对象。一切正常。

问题是,我应该使用什么对象来持久化数据,以便在打开应用程序后读取数据?

我试过 WinJS.Application.sessionState 但是一旦应用程序准备好(打开)它就会丢失。

我试过 Windows.Storage.ApplicationData.current.localSettings 但它说存在类型不匹配,显然我正在尝试将对象放入其中,如果需要字符串(我估计)...

那么有人知道这里的最佳做法是什么吗?

谢谢

您拥有 WinRT API 的完全访问权限,因此您可以写入文件(并在应用程序打开后读取同一文件):

function saveData(dataObj) {
    var applicationData = Windows.Storage.ApplicationData.current;
    var localFolder = applicationData.localFolder;
    return localFolder.createFileAsync("dataFile.txt", Windows.Storage.CreationCollisionOption.replaceExisting).then(function (sampleFile) {
            return Windows.Storage.FileIO.writeTextAsync(sampleFile, JSON.stringify(dataObj));
    });
}