gpt4 book ai didi

ios - 拨出电话时的后台行为,iOS 7 与 iOS 8

转载 作者:行者123 更新时间:2023-12-01 16:37:08 25 4
gpt4 key购买 nike

当我的 iOS 应用程序通过执行以下操作调用电话时:

NSString *telephoneUrl = @"tel:12345678";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:telephoneUrl]];

应用程序生命周期状态会发生什么?

例如如果我将以下几行放在上述电话线下方:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSLog(@"dispatch callback was called!!!");
});

在 iOS 7 上,调用了 applicationDidEnterBackground,上面的代码没有运行,当电话终止时,我在电话应用程序中。仅当我返回我的应用程序时才编写控制台行。

但是,在 iOS 8 上,只调用了 applicationWillResignActive 并且应用程序没有进入后台,当我在电话中时,您实际上可以看到日志正在写入控制台。当通话终止时,我仍在我的应用程序中。

有人可以确认该行为,或将我指向相关文件吗?

最佳答案

是的,iOS 7 和 iOS 8 在这里有所不同。我也找不到关于它的文件。

所以在 iOS 7 中,如果你有来电 applicationWillResignActive: 将首先被调用。如果您拒绝电话 applicationDidEnterBackground 将不会被调用;但如果您接听电话 applicationDidEnterBackground 将被调用,当您结束电话并且您的应用再次激活时 applicationWillEnterForeground: 也会被调用。

但是在 iOS 8 中只有 applicationWillResignActive: 无论你接不接电话都会被调用。

关于ios - 拨出电话时的后台行为,iOS 7 与 iOS 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27198588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com