When I said "fork" I didn't mean "fork" in the sense of "create a new process", but rather in the sense of "copy the existing code to a new class and change it". If you look at the implementation of IOIOActivity, you'll notice that it calls start()/stop() etc. at different times in its lifecycle, causing the IOIO connection to get created / destroyed respectively. You can change that so that these methods are invoked in response to different events.
However, keep in mind that Android makes no guarantees about when it is going to pause()/stop()/destroy() your app, so if you want 100% guarantee that the IOIO connection will be kept alive you need to either prevent the phone from sleeping or use IOIOService. There are standard mechanisms to communicate between the app and the service. One simple thing you can do is use those mechanism to just provide the IOIO interface to the Activity as soon as one is available.