应用程序在使用最新Flurry SDK和ios4重新启动时挂起
我对最新版本的Flurry(Flurry iPhone SDK v2.5)有一个令人沮丧的问题。当我启动应用程序时,快速退出,然后重新启动应用程序,应用程序短暂加载,闪烁黑屏,然后保持在黑屏上。在按下home(主页)按钮之前,黑屏一直存在,此时我可以正常重启应用程序。我进一步研究了这一点,发现应用程序状态代理的调用顺序错误:应用程序在使用最新Flurry SDK和ios4重新启动时挂起,ios4,flurry,Ios4,Flurry,我对最新版本的Flurry(Flurry iPhone SDK v2.5)有一个令人沮丧的问题。当我启动应用程序时,快速退出,然后重新启动应用程序,应用程序短暂加载,闪烁黑屏,然后保持在黑屏上。在按下home(主页)按钮之前,黑屏一直存在,此时我可以正常重启应用程序。我进一步研究了这一点,发现应用程序状态代理的调用顺序错误: ApplicationIDBECOMEACTIVE//app第一次完成加载 applicationWillResignActive//应用程序开始退出 applicatio
#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
#导入“simpleAppPDelegate.h”
#导入“RootViewController.h”
#导入“FlurryAPI.h”
@SimpleAppPDelegate的实现
@合成窗口;
@综合导航控制器;
-(BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项{
[FlurryAPI startSession:@”“;
[窗口添加子视图:navigationController.view];
[WindowMakeKeyandVisible];
返回YES;
}
-(无效)应用程序将重新签名:(UIApplication*)应用程序{
printf(“applicationWillResignActive\n”);
}
-(无效)应用程序标识符背景:(UIApplication*)应用程序{
printf(“applicationIdentinterbackground\n”);
}
-(无效)应用程序将进入前台:(UIApplication*)应用程序{
printf(“applicationWillEnterForeground\n”);
}
-(无效)应用IDBECOMEACTIVE:(UIApplication*)应用{
printf(“applicationdidebecomeactive\n”);
}
-(无效)申请将终止:(UIApplication*)申请{
printf(“applicationWillTerminate\n”);
}
-(无效)应用程序IDReceiveMemoryWarning:(UIApplication*)应用程序{
}
-(无效)解除锁定{
[导航控制器释放];
[窗口释放];
[super dealoc];
}
@结束
这里是SimpleAppPDelegate.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
#导入
@接口SimpleAppPDelegate:NSObject{
UIWindow*窗口;
UINavigationController*导航控制器;
}
@属性(非原子,保留)IBUIWindow*window;
@属性(非原子,保留)IBuinavigationController*导航控制器;
@结束
所以不管怎样,因为这么多应用程序都在使用Flurry,我觉得我一定错过了一些非常基本的东西。真正让我吃惊的是,我根本没有发现有人抱怨这个问题此外,这与以前版本中的问题不同,在以前版本中,应用程序会立即启动,变黑几秒钟,然后正常恢复。通过调用[FlurryAPI setSessionReportsOnCloseEnabled:false]解决了该问题;在我设置会话之后,但在这种情况下没有帮助。
不管怎样,还有其他人有这个问题吗?我真的希望这只是我一个愚蠢的错误。我真的很高兴使用Flurry,但类似的东西会导致我的应用程序被拒绝。我不确定是应该在原始帖子的评论中回答我自己的问题,还是发布答案,但无论如何,答案如下: Flurry已被破解,其他人已在此apple dev论坛线程上确认(您需要一个帐户才能登录):
希望Flurry能尽快推出新版本,我真的很想将他们的产品整合到我的应用程序中。我们刚刚发布了新版本的iPhone Flurry SDK,应该可以解决这个问题。请下载此新SDK,并告知我们它是否解决了您遇到的问题 -- 真诚地 -希拉
Flurry支持我给Flurry写了这篇文章,他们很快回复我,他们会调查此事。大约一周后,他们回信说他们在现在可用的v2.6中修复了它。我似乎再也不能重现这个问题了
我不是说我很厉害或者什么的,但是我一个人解决了这个bug。我从flurry那里得到了这个。版本2.7也有问题,但:
[FlurryAPI setSessionReportsOnCloseEnabled:(BOOL)sendSessionReportsOnClose];
默认情况下,此选项处于启用状态。启用后,Flurry将在退出应用程序时尝试发送会话数据,就像在启动应用程序时一样。这将提高应用程序分析的更新速度,但会由于网络延迟而延长应用程序终止过程。在某些情况下,网络延迟可能会导致应用程序崩溃。2.7在加载和应用程序加载时都会崩溃。对2.7的补丁有更新吗?没有。当我快速切换回应用程序时,它会挂起几秒钟。可以确认API的最新更新解决了问题!最新的Flurry SDK今天仍然存在此问题