У меня есть код ниже на моем AppDelegate.m applicationDidEnterBackground, который отобразит локальное уведомление через 10 секунд после закрытия приложения.iOS Локальное уведомление/фоновая активность
Однако метка времени (и любые другие данные, которые я хочу включить), является тем, что она находится во время создания уведомления.
Я хотел бы иметь возможность показывать последние данные в момент отображения уведомления, в отличие от данных на момент его создания.
Могу ли я сделать это с уведомлением, или мне нужно что-то сделать с фоновой активностью? И если да, то что я называю/как планировать эту деятельность?
NSDate *currentTime = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh-mm-ss"];
NSString *resultString = [dateFormatter stringFromDate: currentTime];
NSLog([NSString stringWithFormat:@"Time: %@",resultString]);
NSDate *alertTime = [[NSDate date]
dateByAddingTimeInterval:10];
UIApplication* app = [UIApplication sharedApplication];
UILocalNotification* notifyAlarm = [[UILocalNotification alloc]
init];
if (notifyAlarm)
{
notifyAlarm.fireDate = alertTime;
notifyAlarm.timeZone = [NSTimeZone defaultTimeZone];
notifyAlarm.repeatInterval = 0;
notifyAlarm.alertBody = resultString;
[app scheduleLocalNotification:notifyAlarm];
}
Это на самом деле шаговый счетчик. То, что я искал, это планировать ежедневное уведомление, чтобы показать количество шагов, сделанных за предыдущий день. Однако для этого мне нужно было бы получить последние данные, в отличие от данных при последнем запуске. Я знаю, что некоторые приложения sen пробуждаются, чтобы собирать последние данные и сохранять их в истории и т. Д., Так как я могу сделать это именно так? Пробуждение приложения раз в день в течение 1 или 2 секунд максимум, захват последних данных и публикация уведомления (и, самое главное, сохранение последних данных!). – MrNeilM
Можете ли вы рассказать о том, как приложение подсчитывает шаги? Учитывает ли их только на переднем плане? На данный момент я полагаю, что вы должны попробовать использовать режим фонового фона и там, где обновление местоположения решит, должно ли приложение планировать локальное уведомление – Roman
Я использую CMCoreMotion CMStepCounter. Поэтому он собирает данные все время, и я просто обновляю дисплей и делаю соответствующие вычисления на переднем плане. Таким образом, данные доступны, но мне нужно обработать их перед установкой локального уведомления. – MrNeilM