首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当iOS应用程序在后台/已终止时,是否持久连接?

当iOS应用程序在后台或已终止时,是不允许持久连接的。这是由于iOS系统的限制和优化考虑。

在后台运行时,iOS应用程序的网络活动受到限制,以节省设备的电池寿命和网络带宽。当应用程序进入后台或已终止状态时,系统会暂停应用程序的网络连接,并且不允许应用程序保持持久连接。

然而,iOS提供了一些特殊的后台模式,允许应用程序在特定情况下继续进行网络活动。例如,VoIP(Voice over IP)应用程序可以在后台保持网络连接以接收来电,音乐流媒体应用程序可以在后台继续播放音乐等。但是,这些后台模式是有限制的,并且需要应用程序开发者按照苹果的规定进行配置和使用。

总结起来,当iOS应用程序在后台或已终止时,是不允许持久连接的,除非应用程序符合特定的后台模式要求。这是为了保护设备的电池寿命和网络带宽,并确保应用程序的合理使用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS app中蓝牙的后台处理

,但是新的12.X系统中发现,如果外设在App后台断连,系统重连外设(绑定了ANCS),App并不能收到回调。...connections,我理解是你的app和周边设备的连接,因为你注册了后台模式,所以系统为你保留了资源维持这种连接,可以使用BLE的通信,但是内存被释放,你的对象也就不见了)。...例如,你的应用程序探索连接的周边设备的数据的过程中可能已被终止。当你的应用程序使用此外设进行恢复,它将不知道它在终止的发现过程有多远。您将需要确保您从发现过程中离开的地方开始。...例如,centralManagerDidUpdateState:委托方法中初始化您的应用程序时,您可以了解您是否已成功发现已还原外设的特定服务(应用程序终止之前),如下所示: NSUInteger...如果你的应用程序成功发现服务,你可以检查是否发现了相应的特征(以及是否订阅它们)。 通过以这种方式更新初始化过程,你将确保正确的时间调用正确的方法。

3.7K30

OpenGL ES编程指南(三)

尤其是,使用OpenGL ES的iOS应用程序必须正确处理多任务,否则在转到后台可能会被终止。 在为iOS设备开发OpenGL ES内容,您还应该考虑显示分辨率和其他设备功能。...不能在后台工作 OpenGL ES应用程序移到后台必须做额外的操作。 如果应用程序不正确地处理这些任务,它可能会被iOS终止。...您的应用程序如果在后台进行OpenGL ES调用,或者在后台将先前提交的命令刷新到GPU,应用程序将会被终止。 您的应用程序必须确保移动到后台之前让先前提交的所有命令都已完成执行。...这意味着您的应用程序的帧缓冲区所消耗的内存分配,但无用。而且,帧缓冲器的内容是暂时的;大多数应用程序每次渲染新帧都会重新创建帧缓冲区的内容。...如果您使用Core Animation图层绘制OpenGL ES内容,则应用程序仍应包含视图控制器来管理用户界面方向。 其他显示屏上展示 iOS设备可以连接到外部显示器。

1.8K10

Alamofire-URLSession必备技能

default模式下系统会创建一个持久化的缓存并在用户的钥匙串中存储证书 ephemeral: 系统没有任何持久性存储,所有内容的生命周期都与session相同,session无效,所有内容自动释放...waitsForConnectivity:一个布尔值,指示会话是否应等待连接变为可用或者立即失败 3....设置安全策略 tlsMaximumSupportedProtocol:在此会话中进行连接客户端应请求的最大TLS协议版本。...支持后台转移 sessionSendsLaunchEvents:一个布尔值,指示传输完成是否应该在后台继续或启动应用程序 isDiscretionary:一个布尔值,用于确定是否可以根据系统的判断来调度后台任务以获得最佳性能...假如内容必须重新生效,将建立一个连向源端的连接来查看内容是否发生变化。假如内容没有变化,那么响应就从本地缓存返回数据。

2K20

app自动化面试题

此刻并不会被销毁,只是失去了与用户交互的能力,其所有的状态信息及其成员变量都还在,只有系统内存紧张的情况下,才有可能被系统回收掉 3.停止(Stopped):Activity被系统完全覆盖,被覆盖的...一般来说是状态栏上放一个持久的图标,用户可以打开它并获取消息。...只有需要在多个应用程序间共享数据才需要内容提供者。例如:通讯录数据被多个应用程序使用,且必须存储一个内容提供者中。它的好处:统一数据访问方式。...服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另一个应用程序,服务扔然能够保持正常运行,不过服务并不是运行在一个独立的进程当中,而是依赖于创建服务所在的应用程序进程。...某个应用程序进程被杀掉后,所有依赖于该进程的服务也会停止运行(正在听音乐,然后把音乐程序退出) 5 App测试中ios和Android有哪些区别呢?

1.4K20

APP测试面试题汇总

一般来说是状态栏上放一个持久的图标,用户可以打开它并获取消息。...只有需要在多个应用程序间共享数据才需要内容提供者。例如:通讯录数据被多个应用程序使用,且必须存储一个内容提供者中。它的好处:统一数据访问方式。...服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另一个应用程序,服务仍然能够保持正常运行,不过服务并不是运行在一个独立的进程当中,而是依赖于创建服务所在的应用程序进程。...暂停(Paused):Activity失去焦点,或被一个新的非全面屏的Activity,或被一个透明的Activity放置栈顶,Activity就转化为Paused状态。...这种非正常情况下,系统杀死或者结束之前会调用onSaveInstance()方法来保存信息,同时,Activity被移动到前台,重新启动该Activity并调用onRestoreInstance(

1.7K31

ViewModel:持久化、onSaveInstanceState()、UI 状态恢复和 Loader

如果你想让用户应用运行在后台三个小时候后再返回到与之前完全相同的状态,你也需要将数据持久化。这是因为一旦你的活动进入后台,此时如果你的设备运行在低内存的情况下,你的应用进程是可以被终止的。...进程终止的时候你没有机会持久化数据。因此如果你想最大可能的保持数据不丢失,你应该在用户一进入(activity)的时候就进行持久化。...这个 activity 处于后台并且被系统终止的时候 — 一旦 activity 进入后台 onSaveInstanceState() 就会被调用。...数据更新他们知道从哪里获取数据以及调用哪个 API。你可以把他们当做是不同数据源(持久模型、web service、缓存等)之间的协调员。”...关键点是: ViewModel 不是持久化的替代品 — 数据改变像平常那样持久化他们。

93420

APP安全测试点概述

四、账户安全 4.1 密码是否明文存储在后台数据库 评审和测试中需要关注密码的存储。...8)限制/允许使用手机读取用户数据 9)限制/允许使用手机写入用户数据 10)限制/允许应用程序来注册自动启动应用程序 2.数据安全性 1)将密码或其它的敏感数据输入到应用程序时,其不会被存储设备中...5)当应用程序处理信用卡明细或其它的敏感数据,不以明文形式将数据写到其他单独的文件或者临时文件中。以防止应用程序异常终止而又没有删除它的临时文件,文件可能遭受入侵者的袭击,然后读取这些数据信息。...11)进行读或写用户信息操作应用程序将会向用户发送一个操作错误的提示信息。 12)没有用户明确许可的前提下不损坏删除个人信息管理应用程序中的任何内容。...2)创立连接应用程序能够处理因为网络连接中断,进而告诉用户连接中断的情况。 3)应能处理通讯延时或中断。 4)应用程序将保持工作到通讯超时,进而给用户一个错误信息指示有链接错误。

1.3K21

求职笔记-iOS

前言 今年年初求职,整理、回顾了学习iOS开发以来收获的知识,此篇为当时的笔记。 插一段我对面试的看法。...5、对象回收Weak指针自动被置为nil的实现原理? 6、常见的持久化实现方法? 7、动画中的图层树、逻辑树、动画树、显示树分别是什么? 8、APP的生命周期(应用程序的状态)有哪些?...:self]; } iOS 8 的UIScrollView的delegate属性 持久化实现 ios中存储数据基本上就是plist、sqlite和CoreData (NSUserDefault其实也是...:程序在后台运行,在后台停留一段时间后进入挂起状态(Suspended),如果有音乐、下载等特殊任务的程序可以长期处于Backgroud状态; Suspended挂起:程序在后台且不运行,收到系统内存不足的...还有一种:加载应用程序后台(在后台打开网易云音乐) 前面的start部分一致,但最终进入的不是Foreground状态,而是Background状态; Background长时间不运行,会导致应用程序进入

1.2K60

iOS应用程序生命周期(前后台切换,应用的各种状态)详解

iOS应用程序的生命周期,还有程序是运行在前台还是后台应用程序各个状态的变换,这些对于开发者来说都是很重要的。 iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的。...4、转到后台运行 4.1 如图所示: ? PS:只有IOS4以上系统或者支持多任务的设备才能后台运行。不然会直接结束状态。 4.2 当应用程序进入后台,我们应该做写什么呢?...4.3 应用程序后台的内存使用 在后台,每个应用程序都应该释放最大的内存。系统努力的保持更多的应用程序后台同时 运行。...不过当内存不足,会终止一些挂起的程序来回收内存,那些内存最大的程序首先被终止。 事实上,应用程序应该的对象如果不再使用了,那就应该尽快的去掉强引用,这样编译器可以回收这些内存。...程序返回后台或前台是,程序都要正确的处理这些通知。 6、程序的终止 程序只要符合以下情况之一,只要进入后台或挂起状态就会终止iOS4.0以前的系统 app是基于iOS4.0之前系统开发的。

4.5K111

UIApplicationDelegate

app delegate 扮演了以下关键角色 它包含了APP的启动代码 它会响应APP的状态改变,特别地,它会响应暂时的中断以及应用程序执行状态的变化,例如您的应用程序从前台转换到后台。...它决定了是否应该进行状态保护和恢复,并根据需要协助保护和恢复进程。 它响应以应用程序本身为目标的事件,而不是特定于应用程序的Views或Viewcontrollers。...当用户退出应用程序时,系统暂停应用程序之前短暂地将其移至后台状态。 在其他时候,系统可能会启动应用程序后台(或唤醒挂起的应用程序),并给它时间来处理特定的任务。...系统挂起在后台的App,没有任何待完成的任务。 系统可能随时清除这些被挂起的app,而不会唤醒它们为其他app腾出空间。 状态发生改变,下面的方法会被调用....如果app需要引用受保护的文件,则必须移除该文件引用,并在调用此方法释放与该文件关联的所有对象,当用户随后解锁设备,你可以重新建立连接通过app delegate’s applicationProtectedDataDidBecomeAvailable

67530

Flutter 后台任务

iOS 中,后台任务有更严格的限制,但仍然有一些方法可以运行一些后台任务。 说到 Flutter 应用程序后台任务需要澄清的是他们的执行是在对端平台!...您需要将 Dart 函数作为回调传递给本地库,这非常有用。callbackRawHandle 使用的场景是应用程序本地端调用 Dart 代码。...当应用在后台唤醒(例如:启动完成-后台进程初始化器),从持久化存储中获取 RawHandle。... callbackDispatcher 被调用时,你可以插件中注册其他事件并在后台的 Dart 侧处理它们,或者使用其他插件!...initializeFlutterEngine method: 创建一个 FlutterLoader 对象并检查其是否初始化 第 19-20 行开始并等待初始化完成 获取应用程序的BundlePath

3K30

移动端测试通用覆盖点

体验规范; android体验规范:长按弹出删除选项(一想不起来还有哪些,平时还是要多做总结); ios体验规范:左滑弹出删除选项、左右滑动可翻页 符合用户体验规范: 是否有空数据界面设计,引导用户去执行操作...菜单层次是否太深; 交互流程分支是否太多; 相关的选项是否离得很远; 界面中按钮可点击范围是否适中; 切换标签的时候,内容跟着切换; 是否定义Back的逻辑。...涉及软硬件交互,Back键应具体定义 是否有横屏模式的设计,应用一般需要支持横屏模式,即自适应设计; 不同的页面是否有导航连接、导航与页面风格一致; 是否需要搜索; 图片质量、同一页面图片颜色不宜过多...限制或使用本地连接 限制/允许使用手机拍照或录音 限制/允许使用手机读取用户数据 限制/允许使用手机写人用户数据 安装/卸载安全性: 能够安装设备驱动程序上找到应用程序的相应图标 安装路径应能指定...“取消”命令的操作 “ 取消”命令操作能够按照设计要求实现其功能 应用程序应当能够处理当不允许应用软件连接到个人信息管理的情况 进行读或写用户信息操作, 应用程序将会向用户发送一个操作错误的提示信息

1.1K41

APP测试流程及测试点总结

以6)防止应用程序异常终止而又没有侧除它的临时文件, 文件可能遭受人侵者的袭击, 然后读取这些数据信息。...13)应用程序应当能够处理当不允许应用软件连接到个人信息管理的情况 14)进行读或写用户信息操作, 应用程序将会向用户发送一个操作错误的提示信息 15)没有用户明确许可的前提下不损坏侧除个人信息管理应用程序中的任何内容...是否能暂停程序,优先处理通信, 并在处理完毕后能正常恢复软件, 继续其原来的功能 2)创立连接, 应用程序能够处理因为网络连接中断, 进而告诉用户连接中断的情况 3)应能处理通讯延时或中断 4)应用程序将保持工作到通讯超时...2) APP切换到后台,再回到app,检查功能及应用状态是否正常,IOS4和IOS5的版本的处理机制有的不一样。...5) 客户端有新版本本地不删除客户端的情况下,检查更新后的客户端功能是否是新版本。 6) 客户端有新版本本地不删除客户端的情况下,检查资源同名文件如图片是否能正常更新成最新版本。

2.7K40

互联网App应用程序测试流程及测试总结

以6)防止应用程序异常终止而又没有侧除它的临时文件,文件可能遭受人侵者的袭击,然后读取这些数据信息。...“取消”命令的操作 12)“ 取消” 命令操作能够按照设计要求实现其功能 13)应用程序应当能够处理当不允许应用软件连接到个人信息管理的情况 14)进行读或写用户信息操作,应用程序将会向用户发送一个操作错误的提示信息...是否能暂停程序,优先处理通信,并在处理完毕后能正常恢复软件,继续其原来的功能 2)创立连接, 应用程序能够处理因为网络连接中断,进而告诉用户连接中断的情况 3)应能处理通讯延时或中断 4)应用程序将保持工作到通讯超时...2) APP切换到后台,再回到app,检查功能及应用状态是否正常,IOS4和IOS5的版本的处理机制有的不一样。...5) 客户端有新版本本地不删除客户端的情况下,检查更新后的客户端功能是否是新版本。 6) 客户端有新版本本地不删除客户端的情况下,检查资源同名文件如图片是否能正常更新成最新版本。

1.6K41

Android 中意料之外的应用崩溃以及它们的解决方案

问题 监视产品的崩溃日志,我注意到一些问题与日俱增。该应用在正常测试条件下似乎运行良好,并且崩溃不可复现,直到应用程序后台任务中进入前台。...当用户与其他应用程序交互应用程序置于后台,如果应用程序没有足够的可用内存,则操作系统会终止你的应用程序进程。而这一情况通常发生在前台运行另一个需要更大手机内存 (RAM) 的应用程序时。...由于此时你的所有的单例对象都丢失了,因此这个 Activity 尝试访问相同的对象,就会遇到空指针异常而崩溃退出。 这是个问题。我们继续讨论解决方案之前,让我们复现一下这种情况。...键入以下终端命令以终止你的应用程序进程 adb shell am kill com.darktheme.example 现在,从后台任务中打开你的应用程序,并检查该应用程序是否崩溃。...当用户从后台导航回被结束了的应用程序时候,该应用程序将从 SplashActivity 重新启动,就像是一次新的启动。 这将防止应用程序访问进程重建过程中可能丢失的数据,从而防止应用程序崩溃。

1.1K10

IOS学习1——IOS应用程序的生命周期及基本架构

二、应用程序终止 系统常常是为其他app启动由于内存不足而回收内存最后需要终止应用程序,但有时也会是由于app很长时间才响应而终止。...如果app当时运行在后台并且没有暂停,系统会在应用程序终止之前调用applicationWillTerminate:来保存用户的一些重要数据以便下次启动恢复到app原来的状态。...了解iOS的MVC设计模式之后,我们从下图来了解MVC模式下iOS应用程序有哪些关键对象以及它们职责主要是什么? ?...例如,饿了么app搜索切换地址后,有历史记录搜索地址历史,app下次启动,读取和显示搜索地址历史。 document对象(继承UIDocument)用来管理一些或所有的data model对象。...UIApplication对象启动就设置main run loop和使用它来处理事件和更新基于view的界面。正如它的名字显示,main run loop是运行在应用程序的主线程。

1.4K50

ViewModel:持久化、onSaveInstanceState()、UI 状态恢复和 Loader

如果你想让用户应用运行在后台三个小时候后再返回到与之前完全相同的状态,你也需要将数据持久化。这是因为一旦你的活动进入后台,此时如果你的设备运行在低内存的情况下,你的应用进程是可以被终止的。...下面是 activity 类文档中的一个手册表,它描述了 activity 的哪个生命周期状态你的应用是可被终止的: ?...这个 activity 处于后台并且被系统终止的时候 — 一旦 activity 进入后台 onSaveInstanceState() 就会被调用。...数据更新他们知道从哪里获取数据以及调用哪个 API。你可以把他们当做是不同数据源(持久模型、web service、缓存等)之间的协调员。”...关键点是: ViewModel 不是持久化的替代品 — 数据改变像平常那样持久化他们。

3.7K30

Java面试——TCP与HTTP

图2: TCP四次挥手 【3】由于TCP连接是双向的,因此每个方向都需要单独进行关闭。原则是一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。...接着,我们需要考虑的事情是查看是否还有数据发送给对方,如果没有就可以 Close 这个链接,发送 FIN 给对方,也既关闭连接。所以 CLOSE_WAIT 状态,需要查看自己是否需要关闭连接。...TCP 必须防止某个连接的重复报文连接终止后出现,所以让 TIME_WAIT 状态等待时间大于2MSL,连接响应方向上的 TCP 报文要么完全响应完毕,要么被丢弃。建立二次连接,就不会混淆。...如服务器没有收到任何响应,他就认为客户端已经关闭并终止连接。③、客户端崩溃,但重启。服务器将对其保持探测响应,这个响应是一个复位,使得服务器终止这个连接。④、 客户机正常运行,但是服务器不可达。...十七、http/1.0、http/1.1和http2.0有什么区别 ---- 【1】http/1.0 协议默认使用非持久连接,既持久连接下,服务器处理完客户端请求后立即断开 TCP 连接,服务器不跟踪每个客户

58340

用这些 iOS 技巧让你的 APP 性能更佳

(查看大图) 另外需要注意的是, UIActivityIndicatorView放置启动页上,不会生成动画,因为 iOS 只会将启动页 storyboard 生成静态图像并将其展示给用户。...多任务屏幕中,我们可以看到放在后台应用程序列表。我们可以假设这些应用程序仍在后台运行;实际上,由于内存的需求,一些应用程序可能会被系统杀死并重新启动。...用户退出应用程序iOS 截取的应用程序截图(查看大图) iOS 使用这些屏幕截图来给人一种假象,即应用程序仍在运行或仍在显示此特定视图,而应用程序可能已被后台终止或重新启动,但此时仍显示相同的屏幕截图...您是否曾体验过,从多任务屏幕恢复应用程序后,该应用程序显示的用户界面与多任务视图中显示的快照有什么不一样? 这是因为应用程序没有实现状态恢复机制,当应用程序后台被杀死,显示的数据丢失。...请记住,当应用程序被用户强行关闭,操作系统将删除保存的状态,避免状态保存和恢复出现问题。

3.2K30

Docker运行命令示例

在前台中运行容器 默认情况下,docker run命令未提供任何选项,根进程将在前台启动。这意味着来自根进程的标准输入,输出和错误将附加到终端会话。...由于没有与Web服务器的连接,因此终端为空。 要停止容器,请按CTRL+C终止正在运行的Nginx进程。 以分离(后台)模式运行容器 要在退出终端会话保持容器运行,请以分离模式启动容器。...要将终端连接到分离的容器根进程,请使用 docker container attach令。 退出后移除容器 默认情况下,容器退出,其文件系统将保留在主机系统上。...http://localhost:8080 或在Docker主机上运行以下 curl 命令来验证端口是否发布: curl -I http://localhost:8080 输出将如下所示: HTTP...Docker卷是使数据持久化并在多个容器之间共享的首选方法。

1.2K10
领券