应用程序挂起重启最新的Flurry SDK和ios4

问题描述:

我有一个令人沮丧的问题,最新版本的Flurry(Flurry iPhone SDK v2.5)。当我启动我的应用程序时,快速退出,然后重新启动应用程序,应用程序暂时加载,闪烁黑屏,然后停留在黑屏上。黑屏停留在那里,直到我按下主页按钮,此时我可以正常重启应用程序。我看着这个进一步,并且事实证明,应用状态代表越来越叫以错误的顺序:应用程序挂起重启最新的Flurry SDK和ios4

  1. applicationDidBecomeActive //应用程序完成加载第一次
  2. applicationWillResignActive //应用开始辞职
  3. applicationWillEnterForeground //在这一点上,我也很快重新启动应用程序,这就是所谓的
  4. applicationDidEnterBackground //当该委托被调用时,屏幕变黑
  5. 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,但是这样的事情会导致我的应用被拒绝。

+0

今天仍然有这个问题与Flurry最新的SDK – amykaroline 2012-07-10 21:43:13

+0

可以确认API的最新更新解决问题! – hinderberg 2010-07-19 07:51:04

我不知道我是否应该回答我的问题在注释到原来的职位,或发布一个答案,但在这里无论如何是答案:

乱舞被打破,它被证实由其他人在这个苹果开发论坛主题(你需要一个帐户登录):https://devforums.apple.com/thread/56339?tstart=0

这里希望Flurry很快得到一个新版本,我真的很想把它们的产品纳入我的应用程序。

我们刚发布了一个新版本的iPhone Flurry SDK,可以解决这个问题。请下载这个新的SDK,并让我们知道它是否解决了您遇到的问题。

- 真诚,

-Sheila

乱舞支持

+0

2.7加载时崩溃以及应用程序加载。任何更新到2.7的修复? – stitz 2010-12-08 03:34:32

+0

不,它不会......当我快速切换回应用程序时,它会挂起几秒钟。 – 2011-02-16 18:38:44

我写乱舞这件事,他们回到我真的很快,他们会考虑这一点。大约一个星期后,他们回信并说他们在现在可用的v2.6中修复它。我似乎无法再现问题了。

不是说我很棒或什么都可以,但是我确实善于修正这个错误。

我把这个从乱七八糟。版本2.7也有问题,但是:

[FlurryAPI setSessionReportsOnCloseEnabled:(BOOL)sendSessionReportsOnClose]; 

此选项在默认情况下处于启用状态。启用后,Flurry将尝试在应用程序退出时发送会话数据,以及在应用程序启动时正常进行。这将提高应用程序分析更新的速度,但会延长由于网络延迟导致的应用程序终止过程。在某些情况下,网络延迟会导致应用程序崩溃。