菜鸟教程小白 发表于 2022-12-11 17:34:10

ios - 在后台暂停订阅 UI 更新并在前台重新启动?


                                            <p><p>我有许多更新 UI 的订阅,但我想在应用进入后台时暂停它们,因为它们仍在触发和更新我的 ViewController 的某些部分。</p>

<p>在后台处理内存和不必要的 UI 更新的最佳方法是什么?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我想这取决于您的应用在后台执行的操作。</p>

<p>也许是:</p>

<ul>
<li>是不是一个<code>timer</code>/<code>interval</code>一直在走。</li>
<li>尚未返回或连接到 WebSocket 的网络请求的 <code>Observable</code>。</li>
<li>一个<code>Observable</code>,它监听屏幕方向变化等系统事件。</li>
</ul>

<p>根据您关心的<code>Observable</code>,您可能希望以不同的方式处理它。对于网络请求,您可能想要取消它,或者可能取消它然后在前台重新启动它。如果是像方向改变这样的系统事件,您可能只想在前台获取当前值。</p>

<p>无论如何,我不得不问,你为什么这么关心内存?我想说,让 iOS 处理系统内存问题。如果它决定终止您的应用,您的 <code>Disposable</code> 应该自行正确清理(如果您正确使用 <code>DisposeBag</code>)。然后,您应该只关心您的应用程序保持足够的状态,以便它可以从中断的地方继续(在正确的页面上等)。我不建议代表 iOS 尝试过度优化。只要 iOS 允许,让您的应用程序继续运行。您的用户可能只是在几秒钟内跳转到另一个应用程序。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在后台暂停订阅 UI 更新并在前台重新启动?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/39583139/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/39583139/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在后台暂停订阅 UI 更新并在前台重新启动?