Like you say, when you open reopen the app it has to reconnect to the proxy_orb which is why the splash-screen gets displayed. I'm wondering if the reconnect can be bypassed somehow.
When RoamingOrb is backgrounded maybe it can tell the core "i've been backgrounded" so that the core doesn't think it's dead when it stops responding to pings (I'm assuming this is how the protocol currently works). When re-opening RoamingOrb, the app can resume functioning as if it was never closed (maybe it just does a screen refresh).
Again, I don't know the details of the communication protocol, so this may be impossible without major structural changes. Thanks for listening to my ideas!
Hmmm ... When you start the app it opens a connection to the core and that connection keeps open until you exit the app, or until it is broken (example: quick reloading the dce router).
What i probably could do is backgrounding the app and keeping the connection open (not sure if that is possible as long as i don't have a corresponding device). But you have to keep in mind that the app can also be used over 3G where disconnections are not rare.
Anyhow, i will investigate in that direction as soon as i have a multitasking enabled device ....
Another factor is that on a 3G connection where the user may have limitations on their mobile dataplan they might leave the App open but in the background and chew up a lot of their data plan allowance - without realising it. On the other hand the amount of data we're moving when the app is idle and no screen changes are happening is pretty tiny so this may not really be an issue. On a Wifi connection this is not a problem of course.
I still think the big win with multi-tasking is the ability for a future version of the App to alert you, when its in the background, to some system event...eg the door bell was pressed, A security alert has been triggered...if the App is sitting their it can alert the user and bring the event to the users attention etc.
All the best
I am investigating with push notifications for that, so even if your app is not started you could be notified of such events.
Concerning the data plan: I am atm evaluating another technique together with uplink. We try to use weborbiter_command and weborbiter_image instead of directly speak to the proxy_orb plugin.
This will then work on standard http port (future remote access) and this may touch battery life. It will also make backgrounding easier as you simply don't poll while in background, but you don't have to disconnect and reconnect everytime.
I am just concerned if this have the same performance. I will do first tests on weekend and let you know.