Wil*_*nes 5 textbox windows-runtime c++-cx uwp
在描述 Windows 10 UWP 应用程序生命周期的文档中,它指出:
用户现在希望您的应用程序在设备上执行多任务时能够记住其状态。例如,他们希望页面滚动到相同的位置,并且所有控件都处于与以前相同的状态。通过了解启动、挂起和恢复的应用程序生命周期,您可以提供这种无缝行为。
然而,似乎没有太多关于如何实现这一目标的文档。我认为所有内容都是由应用程序开发人员手动保存的,然后在恢复时使用应用程序挂起时隐藏的任何数据从头开始重新创建,所有这些都是为了造成应用程序的确切内存状态从未改变的错觉。
我试图仅使用一个最小的示例(一个仅包含 TextBox 的 XAML 页面)来解决这个问题。但即使在这种情况下,我还是有点难以理解如何实现目标。我将提供更一般的想法,但我的具体问题只是如何保存然后恢复一个简单的文本框以从终止状态恢复?我正在使用 C++/CX 工作,但会寻求我能得到的任何帮助。
到目前为止,我对此的想法如下:
ApplicationData::Current->LocalSettings.ApplicationData::Current->LocalSettings我们是否可以避免因数据损坏或丢失而被切断?TextBox->SelectionStart,据我所知,返回当前光标位置的用法在 API 中没有记录。这似乎也很适合存储为intinto ApplicationData::Current->LocalSettings。您引用的应用程序生命周期文档已针对 Windows 10 进行了更新,但似乎丢失了您想知道的一些重要部分。
\n我发现了一篇旧的博客文章,管理应用程序生命周期,让您的应用程序感觉“永远活着”,这似乎是您链接的灵感。
\n在博客文章的最后,有一段内容如下:
\n\n\n在正确的时间保存正确的数据
\n在应用程序的整个生命周期中始终增量保存重要数据。由于您的应用程序只有最多五秒的时间来运行挂起事件处理程序代码,因此您需要确保重要的应用程序数据在挂起时已保存到持久存储中。
\n在编写应用程序时,您需要管理两种类型的数据:会话数据和用户数据。会话数据是与用户\xe2\x80\x99s当前在应用程序中的体验相关的临时数据。例如,用户正在查看的当前股票、用户在电子书中阅读的当前页面或一长串项目中的滚动位置。用户数据是持久的,并且无论如何都必须始终可供用户访问。例如,用户正在输入的正在进行的文档、在应用程序中拍摄的照片或用户\xe2\x80\x99 的游戏进度。
\n
鉴于上述情况,我将尝试回答您的问题:
\n\n\n如何保存并恢复一个简单的文本框以从终止状态恢复?
\n
当最终用户在文本框中输入内容时,应用程序会将后台内容保存到数据存储中。借用文字处理软件的工作原理,您可以自动保存文本框“文档”。我认为文本框内容就是上面的博客文章所描述的“用户数据”。由于保存是在暂停之外完成的,因此无需担心时间窗口。
\n当您的应用程序从终止状态恢复时,它会检查数据存储并将所有数据加载到文本框中。
\n\n\n一旦满足了最低要求,接下来我们可能需要额外的内容,例如光标和窗口位置。
\n
我会将这些项目视为“会话数据”,并在暂停期间保存它们。毕竟,在应用程序处于活动状态时无需跟踪此信息。用户不关心10分钟前开始打字时光标在哪里——他只关心暂停时的光标位置。
\n\n\n那些困难的事情怎么样,比如撤消历史记录?
\n
我认为撤消历史记录是“用户数据”,并会在发生时(暂停之外)保存它。换句话说,当用户输入内容时,您的应用程序应该保存撤消所需的信息。
\n| 归档时间: |
|
| 查看次数: |
2681 次 |
| 最近记录: |