"standby methode" / NSNotificationCenter

  • "standby methode" / NSNotificationCenter

    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
    Check out my Apps:

    PinguFlap and writtenWatch
  • Oh sorry da habe ich mich verschrieben.
    Einmal ApplicationDidEnterBackground und einmal ApplicationWillEnterForeground

    Und welche Methoden werden aufgerufen, wenn eine App/iPhone in den Standby modus geht ?
    Oder welche Möglichkeit habe ich den Timer vor dem Standby zu "invalidaten" und beim wieder erwachen den viewDidLoad erneut aufzurufen, damit alles richtig initialisert wird ??
    Check out my Apps:

    PinguFlap and writtenWatch