首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用程序终止时,布尔设备保持与iPhone的连接

应用程序终止时,布尔设备保持与iPhone的连接
EN

Stack Overflow用户
提问于 2016-09-06 15:59:26
回答 1查看 2.8K关注 0票数 8

我在iOS上遇到了一个问题。我的情况如下:我正在开发连接到设备BLE 4.0的应用程序。我的问题是来电功能。此功能的场景是在设备BLE和应用程序之间连接之后,当电话接到电话时,我的应用程序将数据发送到BLE设备,使其振动和闪烁。

目前我尝试了4例以下,但成功的3例,其余的是失败:

  • 案例1:(成功)当前台应用程序->来电-> app可以向BLE设备发送振动和光闪烁信息时
  • 案例2:(成功)当单击home和app到后台时->传入呼叫-> App可以向BLE设备发送振动和闪烁的信息。
  • 案例3:(成功)当单击home和app时,转到后台并单击睡眠模式按钮->进入呼叫-> App可以向BLE设备发送振动和闪烁的信息。
  • 案例4:(失败)当单击“家庭双击”按钮和背景上的“白蚁”应用程序(移除任务管理器上的应用程序) -->来电-> app无法向BLE设备发送振动和闪烁信息时

有没有人在这个案子之前有过类似的经验,有过这样的帮助的想法吗?

多谢你们的支持!

EN

回答 1

Stack Overflow用户

发布于 2019-02-14 16:15:51

在iOS上,有两种完全终止应用程序的方法:-

  1. 系统会终止应用程序(例如,应用程序在很长一段时间内不会被使用,系统会为了节省内存而杀死它)。
  2. 用户终止/杀死应用程序。

对于第一个场景,您需要添加对国家维护和恢复的支持。来自苹果公司的文档档案:-

因为状态保护和恢复是内置于核心蓝牙的,所以您的应用程序可以选择使用此功能,要求系统保存应用程序的中央和外围管理器的状态,并继续代表它们执行某些与蓝牙相关的任务,即使应用程序不再运行。当其中一项任务完成后,系统会将您的应用程序重新启动到后台,并使您的应用程序有机会恢复其状态并适当地处理事件。

基本上,您需要添加代码来支持这个特性,因为它在默认情况下是不启用的。请看下面的链接,特别是“支持国家保护和恢复”一节:

iOS应用程序的蓝牙核心后台处理

对于第二种情况,如果用户终止/终止应用程序,那么应用程序就无法恢复或重新启动自己。这有一个安全和行为上的原因,因为如果有一个bug或问题,你强迫杀死这个应用程序,你不会希望你的应用程序以某种方式重新启动自己,因为否则你将结束一个无限循环,你将永远无法完全终止这个bug应用程序。请参阅以下连结,进一步解释此点:

https://www.raywenderlich.com/1395-state-restoration-tutorial-getting-started https://medium.com/arkulpa/ios-stay-connected-to-an-external-ble-device-as-much-as-possible-699d434846d2

在文件档案中也间接提到了这一点:

系统可能会重新启动支持后台执行的应用程序来处理传入事件。如果应用程序因用户强制退出以外的任何原因而终止,则当发生下列事件之一时,系统将启动该应用程序.

我希望这能帮到你。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39353262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档