我今天用Tableview编写了一个简单的扩展。在didSelectRowAtIndexPath:上,我打开我的应用程序:
[self.extensionContext openURL:url completionHandler:nil];
这在大多数情况下都是好的。但有时(大多数情况下,应用程序没有在后台运行),应用程序会崩溃。对于我的应用程序来说,url计划并不是什么新鲜事,到目前为止效果还不错。
我发现在这些情况下,application:openURL:sourceApplication:annotation:和applicationDidBecomeActive:将被多次触发。
是有人有同样的问题,还是可以观察到同样的行为?
发布于 2014-09-13 15:48:41
我复制了这个版本,结果发现iOS 8和Google都有问题。
在通过一次技术支持事件与苹果工程师解决了这一问题之后,最新的信息是,当您的应用程序被终止,然后从小部件打开,Google标记管理器通过调用其方法初始化时,问题就会发生:
self.container = [future get];在谷歌的“开始”页面上,他们建议将这段代码放入application:didFinishLaunchingWithOptions方法中。
但是,将代码放在这里显然会旋转UIKit运行循环,这意味着在您的AppDelegate中,您将看到这两个方法被快速地连续调用两次:
- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- (BOOL) application:(UIApplication *)application openURL:(NSURL *)url如果应用程序是后台的,而不是终止的,则不会观察到这种行为。
无论这是iOS 8中的bug还是Google中的bug,这仍然是TBC的问题,但在此期间,您最好将GTM初始化代码从AppDelegate中删除,并在应用程序中的其他地方执行。
https://stackoverflow.com/questions/25811062
复制相似问题