Есть ли возможность узнать, будет ли WillResignActive из-за перемещения приложения на задний план или из-за открытия Центра управления/сообщений?Зная, что приложение перемещается на задний план в WillResignActive?
ответ
Если ваше приложение переместилось на задний план, тогда будет отправлено сообщение DidEnterBackground
. Вы можете проверить после небольшой задержки после WillResignActive
, чтобы узнать, были ли отправлены оба сообщения.
EDIT: Проверьте этот код
@interface HSAppDelegate()
{
BOOL _enteredBackground;
}
@end
@implementation HSAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSLog(@"%s", __PRETTY_FUNCTION__);
_enteredBackground = NO;
_window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
_window.rootViewController = [HSViewController new];
[_window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
NSLog(@"%s", __PRETTY_FUNCTION__);
dispatch_async(dispatch_get_main_queue(), ^{
if (!_enteredBackground)
{
// Do whatever you want here.
}
else
{
// This won't get called until the app comes back to foreground.
}
});
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSLog(@"%s", __PRETTY_FUNCTION__);
_enteredBackground = YES;
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
NSLog(@"%s", __PRETTY_FUNCTION__);
_enteredBackground = NO;
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSLog(@"%s", __PRETTY_FUNCTION__);
}
@end
Спасибо. Дело в том, что мне нужно сделать действие в WillResignActive, и я не могу дождаться DidEnterBackground. – shannoga
Я добавил пример кода для вас. Надеюсь, это поможет вам в правильном направлении. Причина, по которой он работает, заключается в том, что вызов 'dispatch_async' в одной очереди заставляет блок вызываться не следующим циклом запуска. –
- 1. Android-приложение перемещается на задний план без сбоев
- 2. Индикация, когда ap перемещается на задний план, когда пакеты устанавливаются
- 3. Принесите приложение на задний план, а затем на передний план
- 4. Как положить приложение на задний план?
- 5. Пройди случай на задний план
- 6. Установка переключателей на задний план
- 7. Android закрыть сервис, когда приложение выходит или перемещается на задний план
- 8. Есть ли метод UIViewController, который автоматически вызывается, когда приложение перемещается на задний план?
- 9. Как отправить приложение на задний план при установке на устройство?
- 10. iPhone - отправка приложения на задний план
- 11. Swift - Перейти к просмотру, когда приложение заходит на задний план
- 12. Как отправить заявку на задний план?
- 13. загрузка завершается, когда приложение переходит на задний план
- 14. Загрузка NSURLConnection продолжается, когда приложение переходит на задний план
- 15. Android, как остановить таймер, когда приложение переходит на задний план
- 16. Android, отслеживать, когда приложение переходит на задний план
- 17. Как передать приложение Android с переднего плана на задний план
- 18. Android-аут-выход, когда приложение переходит на задний план
- 19. Продолжающаяся загрузка после того, как приложение переходит на задний план
- 20. Методы вызывается, когда приложение переходит на задний план
- 21. Остановить музыку AVAudioPlayer, когда приложение переходит на задний план
- 22. звук играет, когда приложение переходит на задний план
- 23. Как получить локальные уведомления, когда приложение попадает на задний план
- 24. Задание аннулирования приложения, когда приложение заходит на задний план
- 25. OnDestroy() Вызывается для службы, когда приложение переходит на задний план
- 26. Как сбросить приложение при отправке на задний план
- 27. Отправка запущенного приложения на задний план программно
- 28. Закройте приложение, когда оно идет на задний план
- 29. Calabash - Отправить приложение на задний план и вернуться (Android)
- 30. Пауза Запрос Прослушивание, когда приложение переходит на задний план
Ваш вопрос остается неясным. Вы спрашиваете, знаем ли мы, что приложение ушло в отставку, потому что оно зашло в фоновый режим или был открыт Центр управления? –
Спасибо за это, отредактировав вопрос – shannoga