Я хочу проверить, было ли мое приложение запущено для извлечения фона в моем делете делегата приложения didFinishLaunchingWithOptions. В словаре launchOptions ничего нет. Так есть ли способ проверить это?Как я могу обнаружить, что мое приложение было запущено для фоновой выборки в методе didFinishLaunchingWithOptions?
Я знаю, что могу проверить applicationState
, но по какой-то причине иногда он возвращает UIApplicationStateBackground, даже если я запускаю приложение нормально.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if (application.applicationState != UIApplicationStateBackground) {
// Analytics initialization code
}
}
Я создал точку останова в коде инициализации Analytics, а иногда он входит в этот блок, даже если я запустить приложение нормально!
Я знаю, что я смогу обнаружить состояние позже, когда будет называться applicationDidBecomeActive
или applicationDidEnterBackground
. Если я буду использовать этот подход для определения состояния, мне нужно переместить код инициализации Analytics в другое место. Если он остался в application:didFinishLaunchingWithOptions:
, он будет вызываться каждый раз, когда мое приложение запускает фоновое извлечение. Так что, возможно, мне нужно просто переместить код инициализации Google Analytics на какой-то другой метод и не проверять applicationState
в application:didFinishLaunchingWithOptions:
? Если да, то какой метод я могу использовать для этого?
Вы можете моделировать фоновое обновление в тренажере. Я попытался бы взглянуть на [приложение UApplication sharedApplication] applicationState], чтобы увидеть, если он сообщает, что он находится в фоновом режиме. –
Я уже пробовал. Но почему-то иногда он возвращает UIApplicationStateBackground, даже когда я запускаю приложение нормально! – tagirkaZ
@tagirkaZ Вы имеете в виду, когда вы запускаете свое приложение в обычном режиме, и вы обнаруживаете UIApplicationStateBackground в своем файле didFinishLaunchingWithOptions? – CarmeloS