Hi,
in meiner App läuft ein Timer der absolut notwendig ist. Damit alles immer gut und fehlerfrei läuft, verwende ich vor jedem Wechsel zu einem anderen View [self.timer invalidate] um den Timer zu stoppen. Wenn der MainView wieder aufgerufen wird, wird der Timer automatisch wieder durch den viewDidLoad neu gestartet, in dem ich dafür scheduledTimerWithTimeInterval: verwende.
Dieses Vorgehen funktioniert einwandfrei, doch wenn das iPhone in den Standby Modus geht und es dann durch den Nutzer wieder "aufgeweckt" wird, fällt auf, dass der Timer nicht mehr läuft !
Um das Problem zu lösen habe ich dann versucht mit dem NSNotificationCenter eine "Nachricht an AppDelegate.m zu schicken:
MainViewController.m:
- (void)viewDidLoad
{
[super viewDidLoad];
self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(methode)
userInfo:nil
repeats:YES];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(timerStart) name:@"timerStart" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(timerStop) name:@"timerStop" object:nil];
}
- (void) timerStart
{
[self viewDidLoad];
}
- (void) timerStop
{
[self.timer invalidate];
}
AppDelegate.m:
- (void)applicationDidEnterBackground: (UIApplication *)application
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"timerStop" object:nil];
}
- (void)applicationDidEnterBackground: (UIApplication *)application
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"timerStop" object:nil];
}
AppDelegate.h:
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
Das klappt aber leider nicht...
I
in meiner App läuft ein Timer der absolut notwendig ist. Damit alles immer gut und fehlerfrei läuft, verwende ich vor jedem Wechsel zu einem anderen View [self.timer invalidate] um den Timer zu stoppen. Wenn der MainView wieder aufgerufen wird, wird der Timer automatisch wieder durch den viewDidLoad neu gestartet, in dem ich dafür scheduledTimerWithTimeInterval: verwende.
Dieses Vorgehen funktioniert einwandfrei, doch wenn das iPhone in den Standby Modus geht und es dann durch den Nutzer wieder "aufgeweckt" wird, fällt auf, dass der Timer nicht mehr läuft !
Um das Problem zu lösen habe ich dann versucht mit dem NSNotificationCenter eine "Nachricht an AppDelegate.m zu schicken:
MainViewController.m:
- (void)viewDidLoad
{
[super viewDidLoad];
self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(methode)
userInfo:nil
repeats:YES];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(timerStart) name:@"timerStart" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(timerStop) name:@"timerStop" object:nil];
}
- (void) timerStart
{
[self viewDidLoad];
}
- (void) timerStop
{
[self.timer invalidate];
}
AppDelegate.m:
- (void)applicationDidEnterBackground: (UIApplication *)application
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"timerStop" object:nil];
}
- (void)applicationDidEnterBackground: (UIApplication *)application
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"timerStop" object:nil];
}
AppDelegate.h:
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
Das klappt aber leider nicht...
I