我有许多更新 UI 的订阅,但我想在应用进入后台时暂停它们,因为它们仍在触发和更新我的 View Controller 的某些部分。
在后台处理内存和不必要的 UI 更新的最佳方法是什么?
Best Answer-推荐答案 strong>
我想这取决于您的应用在后台执行的操作。
也许是:
- 是不是一个
timer /interval 一直在走。
- 尚未返回或连接到 WebSocket 的网络请求的
Observable 。
- 一个
Observable ,它监听屏幕方向变化等系统事件。
根据您关心的Observable ,您可能希望以不同的方式处理它。对于网络请求,您可能想要取消它,或者可能取消它然后在前台重新启动它。如果是像方向改变这样的系统事件,您可能只想在前台获取当前值。
无论如何,我不得不问,你为什么这么关心内存?我想说,让 iOS 处理系统内存问题。如果它决定终止您的应用,您的 Disposable 应该自行正确清理(如果您正确使用 DisposeBag )。然后,您应该只关心您的应用程序保持足够的状态,以便它可以从中断的地方继续(在正确的页面上等)。我不建议代表 iOS 尝试过度优化。只要 iOS 允许,让您的应用程序继续运行。您的用户可能只是在几秒钟内跳转到另一个应用程序。
关于ios - 在后台暂停订阅 UI 更新并在前台重新启动?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/39583139/
|