1801
Sítě / Re:Android JB neodpovídá na ping
« kdy: 31. 08. 2013, 12:54:03 »
Google (ale i Apple a všichni ostatní) pro to nabízí jak klient, tak server. Klientskou část v Androidu zajišťuje Google Play. Funguje to tak, že klient vyvolá spojení proti push serveru u Google a naobjednává si události, které ho mají později vzbudit. Pak se to spojení nechá viset v accept režimu a celý telefon může usnout včetně Wi-Fi a celého systému. Zůstane žít jen rádio, které udržuje spojení s GSM sítí. Tím se maximálně šetří baterie, nemusí se udržovat spojení kvůli IDLE v IMAP, ani se neprovádí energeticky nároční polling.
Pokud se stane objednaná událost (třeba přijde mail), push server se o tom dozví, otevře spojení a může při tom klientovi poslat i nějaká menší data (třeba předmět mailu jako základní info). Rádio zprávu dostane, probudí zbytek telefonu a doručí systému (resp. aplikaci Google Play) celou tu událost, podle které je pak rozhodnuto, která aplikace je probuzena (v našem příkladu mail klient) a zda jí mají být předána nějaká data z push zprávy nebo si je už sama pak vyžádá třeba od svého IMAP serveru.
Pokud se stane objednaná událost (třeba přijde mail), push server se o tom dozví, otevře spojení a může při tom klientovi poslat i nějaká menší data (třeba předmět mailu jako základní info). Rádio zprávu dostane, probudí zbytek telefonu a doručí systému (resp. aplikaci Google Play) celou tu událost, podle které je pak rozhodnuto, která aplikace je probuzena (v našem příkladu mail klient) a zda jí mají být předána nějaká data z push zprávy nebo si je už sama pak vyžádá třeba od svého IMAP serveru.