I've faced a problem of writing a backend on Java for the chat with Android clients. What are the best practices for it? After quick googling i've found some approaches:
Why not use a combination of C2DM and then that opens the app which does a poll for the data. C2DM is not designed for huge payloads but can tell the app to poll and so will be realtime.
WP7 and iOS have a C2DM equivalent with the same sort of payload restrictions but they could then share the same backend API for the poll?