Planen einer Aufgabe in einer iOS-App

8

Ich möchte eine Funktion implementieren, die der Stummschaltung von WhatsApp ähnelt. Im Grunde genommen hört der Benutzer für einige Zeit auf, Benachrichtigungen zu erhalten (in meinem Fall mit dem Location Manager). Nach dieser Zeit werden Benachrichtigungen (Standort-Manager) automatisch aktiviert. Wie kann ich ein solches Ereignis (beispielsweise automatisches Aktivieren der Standortverwaltung) beispielsweise 1 Woche nach dem Klicken auf eine Schaltfläche planen?

    
Arda Keskiner 27.08.2015, 11:30
quelle

2 Antworten

6

Ich würde einen hybriden Ansatz vorschlagen, bei dem sowohl NSTimer als auch ein Häkchen verwendet werden, wenn die App startet oder in den Vordergrund tritt.

Wenn der Benutzer Benachrichtigungen deaktiviert, speichern Sie diese Zeit in NSUserDefaults als notificationsDisabledTime.

%Vor%

Überprüfen Sie nun, wann immer die App gestartet wird oder in den Vordergrund tritt Die Dauer zwischen notificationsDisabledTime und der aktuellen Zeit ist größer als eine Woche. Wenn dies der Fall ist, aktivieren Sie die Benachrichtigungen erneut. Wickeln Sie dies in einer netten wiederverwendbaren Funktion zusammen. Rufen Sie diese Funktion im App-Delegaten applicationDidBecomeActive auf:

%Vor%

Als Backup haben Sie einen NSTimer, der etwa einmal pro Stunde feuert und die gleiche Prüfung durchführt, dh diese Funktion aufruft. Dies ist der Fall, wenn der Benutzer viel Zeit in Ihrer App verbringt. Auf diese Weise wird es nach einer Woche wieder aktiviert, wenn auch nicht unbedingt GENAU zum richtigen Zeitpunkt, aber das ist normalerweise in Ordnung.

    
Samhan Salahuddin 27.08.2015, 12:02
quelle
1

1. Vorgehensweise Ich schlage vor, die NSTimer-Klasse zu verwenden und einen Timer für den Aufruf der Funktion zu setzen, der die Stummschaltung aufhebt. Und auch Hintergrund Aufgabe für die Verwendung der Methode im Hintergrund und es könnte durch Hinzufügen von

getan werden %Vor%

vor dem Aufruf des Zeitplans.

Zum Beispiel wollte ich für 8 Stunden stumm schalten, als Sie

anrufen müssen %Vor%

und füge dein stopper

hinzu %Vor%

Sie können auch spezifische Informationen über das Objekt senden, das stummgeschaltet wird, indem Sie userInfo zu Timer hinzufügen.

2. Vorgehensweise

Sie können nach Zeitunterschieden zwischen applicationDidEnterBackground und applicationDidEnterForeground

suchen

let date = NSDate.date() und Differenz let difference NSDate.timeIntervalSinceDate(date)

    
mert 27.08.2015 11:49
quelle

Tags und Links