Solved

iOS backgrounding execution

Posted on 2014-01-08
6
437 Views
Last Modified: 2014-01-09
Hi guys,

I am developing an iOS app for iPad/iPhone for sending XMPP messages. If the user enters an area with no network coverage I want to retry sending the message when I get network connectivity. I can do this, however if the user composes a message and then hit the Home button and i'm in a  the app obviously goes into the background.

I want to be a responsible app and get into the store so know I can't piggy back onto VOIP, Music background modes so how can I still send this message out while app not in the foreground.

Can iOS wake my app up even for a short time say 30 secs every xxx minutes to let me create my XMPP session and try sending the message again? Or can I create a finite task and try for as long as possible to send my message out. Once this time limit is reached thats it and I have to wait until the app is started again?

I know there are new bg modes in iOS 7 but I want to cater for iOS 6 as well ( don't ask :D ). Do I have to use one of these new bg states for creating a long running app?

There must be something that I can do. What is the correct and best solution. Hopefully not mutually exclusive :D.

Ideally it would be iOS waking me up every so often if I have messages and me trying to send them.

Help more than welcome.
0
Comment
Question by:HackThePlanet
  • 3
  • 3
6 Comments
 
LVL 33

Accepted Solution

by:
pgnatyuk earned 500 total points
ID: 39767328
In iOS 7 there is new feature - background fetch. Here you'll find everything:
Multitasking in iOS 7
Or here are two short tutorials:
iOS 7: Background Fetch
iOS 7 SDK: Working with Background Fetch

For an earlier version os iOS, I'd try to use the location manager - it will allow your app to work in the background. Or simply resend a message each time the network status is restored.
0
 

Author Comment

by:HackThePlanet
ID: 39767402
Since the application is in essence a chat application (XMPP chat) would that fall under a social networking application in Apple's eyes?

I see in the Location Manager section in developer section that it talks about "social networking".

If I have messages to send and I go into the background I suppose I could start a significant change location service. If I run past allotted time I could register for a stay of execution with a finite task.

And so on until all messages are sent. Then I would rely on Push notifications for notification of incoming messages.

Sound like a plan that would get into the app store for iOS6 and 7?
0
 
LVL 33

Expert Comment

by:pgnatyuk
ID: 39767480
Sounds good.
0
Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 

Author Comment

by:HackThePlanet
ID: 39767502
Brilliant. Many thanks pgnatyuk. Found a way forward. Ciao!
0
 

Author Closing Comment

by:HackThePlanet
ID: 39767506
Fab answer. Helped distill into something that is now understandable. Cheers!
0
 
LVL 33

Expert Comment

by:pgnatyuk
ID: 39768088
You are welcome
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

The Basics of Storyboard Storyboards were first introduced to developers in the release of iOS 5. They save the developer the trouble of designing each screen’s interface in a different file. The storyboard allows you to see the conceptual mockup o…
Short answer to this question: there is no effective WiFi manager in iOS devices as seen in Windows WiFi or Macbook OSx WiFi management, but this article will try and provide some amicable solutions to better suite your needs.
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

792 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question