2015-09-03 3 views
1

Привет всем, Я хочу обновлять свою локальную базу данных каждое утро 10.00. не имеет значения, что приложение запущено или убито или в фоновом режиме. есть ли какой-либо механизм в IOS, например, класс сервиса в Android или что-то еще?вызов один метод каждый день в 10.00

Я знаю, что мы можем достичь этого, используя локальное уведомление, но есть ли способ сделать это без использования локальных уведомлений?

+0

Прежде всего, мы не можем обновить, если наше приложение не работает, и как вы можете добиться этого, используя localNotification, потому что процесс обновления не может быть выполнен, пока не нажмут на уведомление и приложение. – baydi

+0

@baydi, пожалуйста, внимательно прочитайте выше первого вопроса .... и я очень хорошо знаю, как работает локальное уведомление ... http: //stackoverflow.com/questions/16653991/calling-a-method-at-specific-time- каждый день ... обратитесь к этой ссылке .... –

ответ

-1

Вы не можете этого добиться ..

В компании Apple не позволяет запускать любой метод непрерывно даже приложение находится в фоновом режиме ...

только решением является использование локальных уведомлений.

Я знаю, что ты не что использовать местные уведомления, но я держу код, который может быть полезным ...

ViewController.m

UIApplication* app = [UIApplication sharedApplication]; 
    NSArray* oldNotifications = [app scheduledLocalNotifications]; 

    if ([oldNotifications count] > 0) 
     [app cancelAllLocalNotifications]; 

    NSCalendar* myCalendar = [NSCalendar currentCalendar]; 
    NSDateComponents* components = [myCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit 
              fromDate:[NSDate date]]; 

    [components setHour: 10]; 
    [components setMinute: 00]; 
    [components setSecond: 0]; 
    NSDate *alertTime = [myCalendar dateFromComponents:components]; 

    NSLog(@"@@@@@@@@@@@@Local Notification Set Time is:%@",alertTime); 

    UILocalNotification *notifyAlarm = [[UILocalNotification alloc] 
        init]; 
    if (notifyAlarm) 
    { 
     notifyAlarm.fireDate = alertTime; 
     notifyAlarm.userInfo=[[NSDictionary alloc]initWithObjectsAndKeys:@“ViewController”,@“Home”, nil]; 
     //notifyAlarm.applicationIconBadgeNumber=1; 
     notifyAlarm.timeZone = [NSTimeZone defaultTimeZone]; 
     notifyAlarm.repeatInterval = NSHourCalendarUnit; 
     notifyAlarm.soundName = @"iPhone_Tritone.mp3"; 
     notifyAlarm.alertBody = @“Calling Method”; 
     [app scheduleLocalNotification:notifyAlarm]; 
    } 

AppDelegate.m

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 
{ 
    NSLog(@"@@@@@@@@@@Did Receive Local [email protected]@@@@@@@@@@ is:%@",notification.userInfo); 

    [self callingUrMethod]; 
} 

Else вы достигаете его, используя Push-уведомления, которые будут запущены сервером каждый день в 10 утра на основе времени устройства iPhone ...

+0

спасибо за повтор .... если вы найдете какое-нибудь решение, то plz поделитесь со мной. –

Смежные вопросы