iPhone应用程序可以在启动时启动吗?
现在我已经回答了两个不同的问题 ,都解释了VOIP应用程序如何在启动时不启动,但人们似乎认为他们是这样做的。
我不是100%肯定自己,有人把我链接到苹果文档的一部分 ,这并没有提到有关自动启动应用程序的任何内容。
我原本是在先前的知识和这个答案 ,但是一个人说他们这样做,我真的不知道。
据我所知,应用程序只对推送通知作出反应,并且在设备打开时不能启动到后台。
我们可以澄清是否可以自动启动应用程序?
看看这个文档中的UIBackgroundModes部分 – 似乎表示添加voip
键将在启动时自动启动应用程序。
编辑: 示例应用程序似乎证实了这种行为。
我确认设置VOIP模式工作。 不过,我发现应用程序在上电后不会重新启动,除非它在设备断电时运行。 此外,应用程序将不会真正重新启动最近加电的设备,直到设备上电后解锁。
好吧,我不知道这个分类是不是答案,但我觉得有义务说。 我正在开发一个应用程序,它跟踪重大的位置变化,并提供VoIPfunction。 该应用程序在所需的背景模式下具有voip
密钥。 我尝试了一些我想分享结果的案例:
- 应用程序处于debugging模式 – 在应用程序运行时(主动或后台)closures – iOS 7.1.1(11D201)和iPhone 4(产品名称:iPhone3,2):
启动时,应用程序在后台运行,以及之前运行的其他应用程序。 我不认为这与VoIP有任何关系。
- 应用程序处于debugging模式 – 应用程序终止时closures – iOS 7.1.1(11D201)和iPhone 4(产品名称:iPhone3,2):
当启动时,应用程序没有运行,configuration工具没有日志,服务器说用户没有注册我不能从其他设备调用它; 而其他与voip或位置跟踪无关的应用程序,但在closures之前打开的应用程序至less已加载到内存中。 意思是, voip
键不起作用。
我已经继续使用相同的应用程序的testing,但这次从应用程序商店下载。 结果是一样的。 将设备和操作系统更改为iPhone 3G(产品名称:iPhone2,1)和iOS 6.1.6(10B500)。 在debugging和发布模式中都没有改变。
我告诉我的老板,苹果提供了这种行为,可以做到。 然后我有了第二个念头,试了一下,现在我拼命想找另外一个方法。 将这件事寄给苹果公司。
没有用户交互,您将无法启动应用程序。 用户必须点击自定义链接上的推送通知上的应用程序图标。 可能还有其他的方式,我不知道,但即使他们存在,他们需要用户互动故意启动应用程序。
编辑
事实certificate,正如蒂姆所说,VOIP应用程序可能有一个例外。
重要的位置更改或区域监视也会导致应用程序在启动时启动,只要其打开并保持开启状态即可。 没有UIBackgroundModes键是必要的。
我一直在开发VoIP应用程序,我可以确认VoIP应用程序将在iPhone重新启动时自动启动,只要用户在重新引导之前不杀死它。 当iOS自动启动voip应用程序只application:didFinishLaunchingWithOptions:
将运行,即applicationDidBecomeActive:
将不会运行。
我曾经怀疑iOS是否会在崩溃时自动重新启动voip应用程序。 经过调查,我发现iOS会自动重新启动voip应用程序,但如果不断崩溃,iOS会在最终放弃之前尝试使用ser </s>声。
如果您检查xcode的iPhone控制台输出,您可以在第一次崩溃后看到类似这样的日志
.. Service exited due to signal: Abort trap: xxx Unable to get short BSD proc info for xxxx: No such process Application 'UIKitApplication:xxxxx]' crashed. ...
- iPhone数据使用情况跟踪/监测
- Grand Central Dispatch(GCD)与performSelector – 需要更好的解释
- 我怎样才能做关键值观察,并得到一个UIView帧的KVOcallback?
- dispatch_get_global_queue和dispatch_queue_create有什么区别?
- Xcode中的Storyboard参考,我们应该在哪里使用它?
- 使用Vim而不是(或与)Xcode的iOS开发
- 故事板从视图控制器到本身
- 在AppDelegate.m的屏幕上获取当前显示的UIViewController
- Swift – 使用哪种types? NSString或String