问题标签 [state-restoration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
362 浏览

ios - Xamarin MvvmCross iOS 状态恢复问题

我目前无法使用 MvvmCross 为 iOS(目标 iOS 8)Xamarin 解决方案获取状态保存/恢复工作。核心视图模型实现了此处指定的保存/恢复https://github.com/MvvmCross/MvvmCross/wiki/View-Model-Lifecycle

该状态在解决方案的 Android 版本中已正确保存和恢复,但不适用于 iOS 版本。

我在关联的视图控制器上设置了一个恢复 ID,并将“选择加入”方法添加到应用程序委托类......</p>

如果我创建一个基本的单视图 iOS Xamarin 应用程序,那么当应用程序进入后台时,我确实会看到对视图控制器的 EncodeRestorableState 覆盖方法的调用。但是,对于类似的简单 MvvmCross 实现,不再调用此覆盖的方法(视图模型的 SaveState 方法也不再调用)。

我一直找不到任何帮助,而且似乎只发现很多人问类似的问题,但目前没有答案(例如,在 iOS 应用程序中没有调用 MvvmCross 中的 SaveState)。

我将非常感谢任何可以帮助我指出正确方向的信息。谢谢。

0 投票
0 回答
377 浏览

ios - 状态恢复不适用于 iOS 8.3?

状态恢复在 iOS8.3 上效果不好,同样的代码在 iOS8.2 上效果很好。这个问题可以通过使用苹果示例代码来重现。

重现步骤:

  1. 启动应用程序并浏览到第二个选项卡
  2. 杀死应用程序
  3. 再次启动应用程序

预期成绩:

它应该返回到第二个选项卡作为恢复结果

实际结果:

它返回到第一个选项卡,这是由于从未调用过“application:shouldRestoreApplicationState”引起的。

版本:

iOS 8.3 12F69

笔记:

配置:

iPhone 模拟器,iPhone 6P


有没有人遇到过类似的问题?有没有办法解决它?

0 投票
0 回答
131 浏览

ios - 努力处理 iOS 中的状态恢复

如何处理“警告:无法创建正在进行的恢复标记文件”。

  1. 我已将恢复 ID 分配给主故事板中的视图控制器。

  2. 我还为代码创建的视图控制器分配了恢复 ID。

例如:

  1. 我按照以下链接进行了询问

iOS中的状态恢复

现在的问题是当我运行应用程序时,我也收到以下警告:

  • 无法创建正在进行中的恢复标记文件。

不知道还需要做什么。

0 投票
1 回答
563 浏览

ios - 3D Touch 和状态恢复的问题

我正在努力在我的应用程序中实现状态恢复,但是我遇到了一个问题。我最近在表格视图中添加了 3D Touch 支持,除了现在我添加了状态恢复之外,它每次都能完美运行。当应用程序恢复表格视图时,对单元格施加压力没有任何作用,就好像表格视图没有注册预览一样。

我有这个代码viewDidLoad

我试图移动它以viewDidAppear查看它是否有帮助,但它没有任何区别。

有任何想法吗?

0 投票
1 回答
121 浏览

ios - 无需动画 segue 即可恢复视图状态

我在我的应用程序中添加了状态恢复,它似乎工作正常,但是我对它的运行方式不满意。

基本上,该应用程序是迪士尼等待时间跟踪器,因此当您第一次打开该应用程序时,它会选择四个公园。点击这些公园之一(带有上滑动画)到应用程序的主要部分。问题是 - 当应用程序重新打开并在几秒钟后恢复视图时,会执行向上滑动转场(这会让人分心)。

有人知道为什么会这样吗?

0 投票
0 回答
43 浏览

ios - 如何在恢复过程中设置视图控制器的变量?

在 View Controller X 中,我使用 prepareForSegue() 来设置 View Controller Y 的变量。

但是在恢复过程中,当我decodeObjectForKey() myvar看不到如何更新avarY

如何在状态恢复期间从另一个视图控制器设置一个视图控制器的成员变量?

解决方案的一个途径是在恢复期间设置一个标志:

然后在课堂上:

在这种方法中,我将如何获得对 Y 视图控制器的引用?我在 Storyboard 中给了它一个标识符,但找不到任何可以查找现有 Y 视图控制器的 API。

0 投票
1 回答
781 浏览

ios - CoreBluetooth:测试状态保存和恢复

我正在使用 Xcode 7,我想了解如何使用 BLE 附件和 CoreBluetooth 框架在 iOS9 中测试“状态保存和恢复”(请不要说我已经找到了这个问题,但我觉得有必要了解更多深度)。

只有当用户的手机在范围内时,我才需要应用程序自动从附件传输一些数据,以防应用程序之前没有运行。

我试图在反映该用例的不同变化的三个场景中对此进行分解,即场景 A、场景 B 和场景 C。

有人可以向我解释测试以下场景所需的基本步骤吗?

这些场景也有意义吗?

  • 情景A:

    1 - 应用发现配件并存储配件信息

    2 - 应用程序/用户退出附件范围

    3 - 应用程序被用户杀死

    4 - 用户在 App 未运行时重新进入附件范围。

    5 - 预期事件:我希望激活状态恢复(在 CentralManager 中调用willRestoreState方法以及在 AppDelegate 中调用didFinishLaunchingWithOptions

    从这里我应该能够获取包括附件在内的外围设备列表并决定是否要连接到它。

    6 - 如果我决定连接,那么我希望应用程序继续在后台运行(因为激活了后台模式)。

我该如何测试这种情况?


  • 场景 B:

    1 - 应用发现配件并存储配件信息

    2 - 应用程序连接到附件并向特征发送请求以开始传输数据

    3 - 应用程序正在从附件接收数据

    4 - 应用程序/用户退出附件范围

    5 - 应用程序进入后台模式

    6 - 当应用程序在后台模式下运行时,用户重新进入附件范围。

    5 - 预期事件:我希望激活状态恢复(在 CentralManager 中调用willRestoreState方法以及在 AppDelegate 中调用didFinishLaunchingWithOptions

    从这里我应该能够获取包括附件在内的外围设备列表,并看到状态为CONNECTED。然后我应该重新请求数据流(我假设没有办法恢复上一个流,对吗?)

    6 - 应用程序应该在后台继续流式传输

我该如何测试这种情况?


  • 场景 C:

    1 - 应用发现配件并存储配件信息

    2 - 应用程序连接到附件并向特征发送请求以开始传输数据

    3 - 应用程序正在从附件接收数据

    4 - 应用程序/用户退出附件范围

    5 - 应用程序进入后台模式

    6 - 用户杀死应用程序

    7 - 用户在 App 未运行时重新进入附件范围

    8 - 预期事件:我希望激活状态恢复(在 CentralManager 中调用willRestoreState方法以及在 AppDelegate 中调用didFinishLaunchingWithOptions

    从这里我应该能够获取包括附件在内的外围设备列表并重新连接到它并重新请求数据传输(如方案 B 那样恢复它)。

    9 - 我希望应用程序继续在后台运行(因为激活了后台模式)并且应用程序应该在后台继续流式传输

我该如何测试这种情况?

希望不要太混乱。

0 投票
2 回答
6161 浏览

ios - 如何触发Core蓝牙状态保存和恢复

状态保存和恢复 因为状态保存和恢复内置于核心蓝牙中,所以您的应用可以选择使用此功能来要求系统保存您应用的中央和外围管理器的状态,并继续在其上执行某些与蓝牙相关的任务代表,即使您的应用程序不再运行。当其中一项任务完成时,系统会在后台重新启动您的应用程序,并让您的应用程序有机会恢复其状态并适当地处理事件。在上述家庭安全应用的情况下,系统会监控连接请求,并在用户回到家并且连接请求完成时重新启动应用以处理 centralManager:didConnectPeripheral: 委托回调。

我怎样才能触发它并测试代码?

我有一个带有服务的配件。我有一个扫描服务的应用程序,我选择了状态保存。但是我不确定如何从逻辑上测试它,因为我不知道我需要什么来触发它。这些是我尝试失败的选项:

在所有这些选项中,我尝试转到Xcode -> 设备并查看日志,但没有看到任何状态恢复日志。

谢谢

0 投票
1 回答
78 浏览

ios - NSUndomanager 更改是否在 CoreData 启动之间持续存在

我正在使用 CoreData 在应用程序中实现撤消。我的应用程序还使用状态恢复。

从文档中我不清楚的是,NSUndoManager 是否会在启动/状态恢复之间保留其撤消历史记录?如果没有,这不是主要问题,只是我需要知道,以便我可以相应地对其进行编码。

0 投票
1 回答
378 浏览

ios9 - iOS9 中的应用程序恢复问题

应用程序具有保存和恢复状态信息的功能。它在 App 委托中使用 API shouldSaveApplicationState 和 shouldRestoreApplicationState,在相应的视图控制器类中使用 application:willEncodeRestorableStateWithCoder 和 application:didDecodeRestorableStateWithCoder。因此,即使在从任何状态强制退出应用程序后,应用程序也会恢复状态。这在 iOS 8.x 之前运行良好。

从iOS 9.x 开始,发现应用程序从前台强制退出时恢复不起作用。这是因为再次启动应用程序时不会触发 shouldRestoreApplicationState 方法。

在所有其他情况下,应用程序恢复功能按预期正常工作。

我们的应用程序没有进行任何代码更改,但应用程序现在的行为有所不同。

请帮助,因为这是应用程序的关键功能之一。