You can with iOS7. You basically need to set two background states: location and selection.
In your application, you register for gps location changes and store them every time you call a callback. You will then register for:
application:performFetchWithCompletionHandler:
This is usually used to upload files in the background, but you can use it to send your data to a web server. Just note that you do not control the frequency of this call.
To verify this, you can force the fetch operation in the iOS simulator from the Xcode Debug menu.
Thus, I was able to correctly track the user's position. You can find more information in the Apple doc and you will find the background sample tutorial here