> applicationDidBecomeActive // app第一次完成加载
> applicationWillResignActive // app开始辞职
> applicationWillEnterForeground //此时,我已经快速重启了应用程序,并调用了它
> applicationDidEnterBackground //调用此委托时,屏幕变黑
> applicationDidEnterBackground //当屏幕挂起一段时间后再次点击主页按钮时,会调用此方法.
所以我认为这意味着一旦我点击主页按钮,一些进程需要更长的时间来结束,如果我再次尝试再次启动应用程序,则会出现一些非常奇怪的行为.如果我等待几秒钟重新启动应用程序,该应用程序将正常运行.
为了演示这个问题,我创建了我能想到的最简单的应用程序,我将在此处发布.我用XCode 3.2.3构建了这个,在4.0版本中直接在我的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
所以无论如何,因为很多应用程序都在使用Flurry,我觉得我必须缺少一些非常基本的东西.令我难以置信的是,我没有找到任何人抱怨这个特殊问题.此外,这与先前版本中的应用程序似乎立即启动,黑色几秒钟,然后正常恢复的问题不同.通过调用[FlurryAPI setSessionReportsOnCloseEnabled:false]解决了这个问题;在我设置会话之后,但在这种情况下这没有帮助.
无论如何,有没有其他人有这个问题?我真的希望这对我来说只是一个愚蠢的错误.我很高兴使用Flurry但这样的事情会导致我的应用被拒绝.
解决方法
不是说我很棒或者什么,但我还是单枪匹马地解决了这个问题.