UIApplicationDidBecomeActiveNotification и UIApplicationWillResignActiveNotification не всегда запускаются в приложении Unity iOS

Я создал приложение Unity iOS. Причина, по которой я создал приложение для единства, состоит в том, что его можно легко портировать на другие платформы.

Я общаюсь с Axivity Sensors с помощью технологии BLE. Все работает нормально. Но теперь я хочу запустить приложение в фоновом режиме. Поэтому для этого я обнаружил, что должен использовать уведомления UIApplicationDidBecomeActiveNotification и UIApplicationWillResignActiveNotification, чтобы я мог выполнять некоторую фоновую обработку.

Но иногда я не уведомляюсь, когда приложение становится активным или деактивированным.

Есть ли что-то, что я делаю неправильно, или есть лучший способ сделать это?

Ниже приведен код:

-(id) init {

    self = [super init];

    if (!self) return nil;

        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWillResignActive:) name:UIApplicationWillResignActiveNotification object:nil];

        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appDidBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil];

        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWillTerminate:) name:UIApplicationWillTerminateNotification object:nil];

        return self;
    }

-(void)appWillResignActive:(NSNotification*)note {

    [[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(BLEOnCharactersticsUpdateNotification:)
                                             name:BLEOnCharactersticsUpdate object:nil]; 
}

-(void)appDidBecomeActive:(NSNotification*)note {

    NSLog(@"AppDidBecomeActive ");

    [[NSNotificationCenter defaultCenter] removeObserver:self name:BLEOnCharactersticsUpdate object:nil];

    for(int timeStampIndex = 0; timeStampIndex < [timeStampArray count]; timeStampIndex++) {

        NSLog(@"TimeStamp %i : Value : %@",timeStampIndex,[timeStampArray objectAtIndex:timeStampIndex]);
    }
}

-(void)appWillTerminate:(NSNotification*)note {

    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillResignActiveNotification object:nil];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillTerminateNotification object:nil];
}