应用程序挂起重启最新的Flurry SDK和ios4
我有一个令人沮丧的问题,最新版本的Flurry(Flurry iPhone SDK v2.5)。当我启动我的应用程序时,快速退出,然后重新启动应用程序,应用程序暂时加载,闪烁黑屏,然后停留在黑屏上。黑屏停留在那里,直到我按下主页按钮,此时我可以正常重启应用程序。我看着这个进一步,并且事实证明,应用状态代表越来越叫以错误的顺序:应用程序挂起重启最新的Flurry SDK和ios4
- applicationDidBecomeActive //应用程序完成加载第一次
- applicationWillResignActive //应用开始辞职
- applicationWillEnterForeground //在这一点上,我也很快重新启动应用程序,这就是所谓的
- applicationDidEnterBackground //当该委托被调用时,屏幕变黑
- applicationDidEnterBackground //调用此方法时,我打的回家在屏幕挂了一段时间之后再次按下按钮。
所以我认为这意味着一旦我点击主页按钮,一些进程需要更长的时间才能结束,如果我尝试再次启动应用程序的速度太快,会有一些非常奇怪的行为。如果我等待几秒钟重新启动应用程序,则该应用程序正常运行。
为了演示这个问题,我创建了我能想到的最简单的应用程序,我将在这里发布。我用XCode 3.2.3构建了这个,直接在我的iphone设备(iphone 4)上创建。 这很重要,因为我无法在模拟器上重现此问题。您可以通过创建一个名为simpleApp的新的基于导航的项目来重现此应用程序,并使用您自己的Flurry API密钥删除此代码。 这里是simpleAppAppDelegate.m:
#import "simpleAppAppDelegate.h"
#import "RootViewController.h"
#import "FlurryAPI.h"
@implementation simpleAppAppDelegate
@synthesize window;
@synthesize navigationController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[FlurryAPI startSession:@"<your api key here>"];
[window addSubview:navigationController.view];
[window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
printf("applicationWillResignActive\n");
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
printf("applicationDidEnterBackground\n");
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
printf("applicationWillEnterForeground\n");
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
printf("applicationDidBecomeActive\n");
}
- (void)applicationWillTerminate:(UIApplication *)application {
printf("applicationWillTerminate\n");
}
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
}
- (void)dealloc {
[navigationController release];
[window release];
[super dealloc];
}
@end
这里是simpleAppAppDelegate.h:
#import <UIKit/UIKit.h>
@interface simpleAppAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
UINavigationController *navigationController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
@end
所以无论如何,因为这么多的应用在使用乱舞我觉得我必须失去了一些非常基本的。我脑子里真是令人难以置信的是,我没有发现有人抱怨这个特殊问题。 此外,这与以前版本中的应用程序似乎立即启动,黑色几秒钟然后正常恢复的问题不同。通过调用[FlurryAPI setSessionReportsOnCloseEnabled:false]解决了这个问题;在我设置会话之后,但在这种情况下不起作用。
无论如何,有没有其他人有这个问题?我真的希望这只是我的一个愚蠢的错误。我真的很兴奋使用Flurry,但是这样的事情会导致我的应用被拒绝。
我不知道我是否应该回答我的问题在注释到原来的职位,或发布一个答案,但在这里无论如何是答案:
乱舞被打破,它被证实由其他人在这个苹果开发论坛主题(你需要一个帐户登录):https://devforums.apple.com/thread/56339?tstart=0
这里希望Flurry很快得到一个新版本,我真的很想把它们的产品纳入我的应用程序。
我们刚发布了一个新版本的iPhone Flurry SDK,可以解决这个问题。请下载这个新的SDK,并让我们知道它是否解决了您遇到的问题。
- 真诚,
-Sheila
乱舞支持
2.7加载时崩溃以及应用程序加载。任何更新到2.7的修复? – stitz 2010-12-08 03:34:32
不,它不会......当我快速切换回应用程序时,它会挂起几秒钟。 – 2011-02-16 18:38:44
我写乱舞这件事,他们回到我真的很快,他们会考虑这一点。大约一个星期后,他们回信并说他们在现在可用的v2.6中修复它。我似乎无法再现问题了。
不是说我很棒或什么都可以,但是我确实善于修正这个错误。
我把这个从乱七八糟。版本2.7也有问题,但是:
[FlurryAPI setSessionReportsOnCloseEnabled:(BOOL)sendSessionReportsOnClose];
此选项在默认情况下处于启用状态。启用后,Flurry将尝试在应用程序退出时发送会话数据,以及在应用程序启动时正常进行。这将提高应用程序分析更新的速度,但会延长由于网络延迟导致的应用程序终止过程。在某些情况下,网络延迟会导致应用程序崩溃。
今天仍然有这个问题与Flurry最新的SDK – amykaroline 2012-07-10 21:43:13
可以确认API的最新更新解决问题! – hinderberg 2010-07-19 07:51:04