This approach covers Android and iOS quite nicely. Is there also a way to support Windows Phone? That way a single codebase will support all three platforms. Backgrounding is currently confusing and painful.