Я создал приложение 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];
}