Tengo un problema frustrante con la última versión de Flurry (Flurry iPhone SDK v2.5). Cuando inicio mi aplicación, salgo rápidamente, luego reinicio la aplicación, la aplicación se carga brevemente, parpadea una pantalla negra y luego permanece en la pantalla en negro. La pantalla negra permanece allí hasta que presiono el botón de inicio, en ese punto puedo reiniciar la aplicación normalmente. Miré más en esto, y resulta que los delegados estatales aplicación están siendo llamados en el orden equivocado:La aplicación se cuelga al reiniciarse con el último SDK de Flurry y ios4
- applicationDidBecomeActive // aplicación termina de cargar la primera vez que se inicia
- applicationWillResignActive // aplicación a renunciar
- applicationWillEnterForeground // En este punto, he reiniciado rápidamente la aplicación, y esto se llama
- applicationDidEnterBackground // cuando este delegado se llama, la pantalla se queda en negro
- applicationDidEnterBackground // esto se llama cuando llegué a la casa botón de nuevo, después de que la pantalla ha estado colgando por un tiempo.
Así que lo que creo que esto significa es que algunos procesos tardan un poco más en concluir una vez que presiono el botón de inicio, y si trato de iniciar la aplicación demasiado rápido, hay un comportamiento muy extraño. Si espero unos segundos para reiniciar la aplicación, la aplicación se comporta normalmente.
Para demostrar este problema, creé la aplicación más simple que pude pensar, la cual publicaré aquí. Lo construí con XCode 3.2.3, en la versión 4.0 directamente en mi dispositivo iphone (iphone 4). Esto es importante, porque no pude reproducir este problema en el simulador. Puede reproducir esta aplicación creando un nuevo proyecto basado en navegación llamado simpleApp, y soltando este código, con su propia clave de Flurry API, por supuesto. Aquí es 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
Y aquí es 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
Así que de todos modos, debido a que muchas aplicaciones están utilizando la ráfaga siento que debo estar perdiendo algo muy básico. Lo que realmente perturba mi mente es que no he encontrado a nadie en absoluto quejándose de este problema en particular. Además, esto es diferente del problema en las versiones anteriores donde la aplicación parece comenzar de inmediato, ennegrecerse durante unos segundos y luego reanudarse normalmente. Ese problema se resolvió llamando a [FlurryAPI setSessionReportsOnCloseEnabled: false]; después de configurar la sesión, pero eso no ayuda en este caso.
De todos modos, ¿alguien más ha tenido este problema? Realmente espero que sea solo un estúpido error de mi parte. Estoy realmente emocionado de usar Flurry, pero algo así podría hacer que mi aplicación sea rechazada.
Todavía tiene este problema hoy con el último SDK de Flurry – amykaroline
Puede confirmar que la última actualización de la API resuelve el problema. – hinderberg