Is there any equivalent of Services of Android in iOS?
Asked Answered
N

4

17

I want to check the database in my app every 12 hrs for rows with date column having corresponding date. This is accomplished by writing service in android. But is there any equivalent of services in iOS so that my requirement can be accomplished?

Nevertheless answered 21/5, 2013 at 10:35 Comment(4)
You want to check when app is in background?Haileyhailfellowwellmet
I want to check irrespective of whether app is on background or is opened.Nevertheless
I dont think it is possible when the app is in background.Sclerosed
In live you can do using NSTimer. In background mostly not possible.Haileyhailfellowwellmet
C
11

No. There is no such thing in the SDK or in iPhone/iPad in general. You can only write code that will affect the eco system of the app, not the operating system. When your app is closed it's closed and no action will be taken until the user opens it/opens a push notification related to your app.

If the user approved location based services for your app, there are a few ways to run short background process even if your app is totally closed. One of them is by using Monitoring Shape-Based Regions which basically means if the user left region X/entered region Y open the app and run a few commands before closing it again.

The clever way (and the only way I can think of) to accomplish what you're after in iOS is to run that service on a server and pull the data from the server when the app is opened.

Cardioid answered 21/5, 2013 at 10:39 Comment(1)
In iOS13+ you can use BackgroundTasks to schedule the background work that you need to check and update your database. developer.apple.com/documentation/backgroundtasks, andyibanez.com/posts/modern-background-tasks-ios13Beatify
W
2

In iOS7 and later you can use background fetch for this task. You can check this tutorial: http://code.tutsplus.com/tutorials/ios-7-sdk-working-with-background-fetch--mobile-20520

Wreath answered 2/10, 2014 at 9:10 Comment(1)
The "Background processing" mode (iOS13+) is more suitable in this case - developer.apple.com/documentation/backgroundtasks. Apple might not approve using "background fetch" mode to do the kind of work described in the question, because it is designated to fetch content in the background to update the app's interface.Beatify
X
2

iOS Background work

Nowadays you you are able to use Background fetch or Background Processing Task or URLSessionDownload/UploadTask for doing something when app is in background more

[Xcode Background Modes]

[Background session]

Xebec answered 30/9, 2022 at 12:42 Comment(0)
P
1

You can find the solution here. Background Execution does this.

http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

Added: Apple does not allow apps to run in background for all the time. It provides some finite-length time to complete your app execution. You can increase that time depending on your execution need. But that is not recommended.

Presidio answered 21/5, 2013 at 10:42 Comment(3)
That got nothing to do with what the op asked. Services in android run when the app is totally closed. The link you provided talkes about foreground or the background.Cardioid
@EXEC_BAD_ACCESS actually the android services (if started by an app) don't run when the app is totally closed. They can run a longer time in the background but they are still linked to the app that started them. A Service is an application component representing either an application's desire to perform a longer-running operation while not interacting with the user or to supply functionality for other applications to use. (android docs). So if you force close an app it will kill all the services that are running.Host
The link is broken. Its encouraged to put the actual answer in stackoverflow and only provide links as a reference.Limousin

© 2022 - 2024 — McMap. All rights reserved.