I want to my Webservice invoke once every 6 Hours.I am newer in iOS. Please help any help would be apperciated.I am stuck.
Asked
Active
Viewed 436 times
0
-
Use NSTimer to invoke a method periodically. – pkc456 Oct 12 '15 at 08:51
-
You can use Background refresh mode, but there is no way to schedule for a particular interval such as 6 hours. If you need exactly six hours then a silent push from your server is the only way – Paulw11 Oct 12 '15 at 09:09
4 Answers
3
You can user NSTimer and schedule it for 6 hours
NSTimer *timer = nil;
timer = [NSTimer scheduledTimerWithTimeInterval:6*60*60 //6 hour
target:self
selector:@selector(performAction)
userInfo:nil
repeats:YES];

Muhammad Nabeel Arif
- 19,140
- 8
- 51
- 70
-
Thanks but when user kill application this method invoke or not. I want invoke in any situation. – priyanka gautam Oct 12 '15 at 08:56
-
You may have a look at this for running in background http://stackoverflow.com/questions/8415870/scheduled-nstimer-when-app-is-in-background – Muhammad Nabeel Arif Oct 12 '15 at 09:00
0
you can call using NSTimer. this is automatically called which time you set. e.g.
NSTimer *timer= [NSTimer scheduledTimerWithTimeInterval:10.0(your time) target:self selector:@selector(someMethod) userInfo:nil repeats:YES];
-(void)someMethod
{
////API called here...
}

yankit Patel
- 331
- 1
- 12
-
Thanks but when user kill application this method invoke or not. I want invoke in any situation. – priyanka gautam Oct 12 '15 at 08:58
-
if application is kill then no method is called. if application background state then it is called. there is no possibility to called methods if application is killed. – yankit Patel Oct 12 '15 at 09:00
-
but you call methods in AppDelegate file.- (void)applicationDidEnterBackground:(UIApplication *)application – yankit Patel Oct 12 '15 at 09:18
-
You can request a background task that will give you about 3 minutes but you cannot schedule an NSTimer for 10 hours and expect it to fire while your app is in the background, whether your app is killed or not – Paulw11 Oct 12 '15 at 19:21
0
In ViewDidLoad
NSTimer *timer = [NSTimer timerWithTimeInterval:360.0 target:self selector:@selector(hideandview) userInfo:nil repeats:YES];
-(void)hideandview
{
////API called here...
}

Hitesh Boricha
- 114
- 1
- 11
0
You should save the last time in prefence (NSUserDefaults) when you make a call.
Whenever the app starts. Start timer and check current time with last saved time and get the difference.

Sunny Shah
- 12,990
- 9
- 50
- 86