Sto sviluppando app Android interne per la società per cui lavoro. In vari punti delle app ho bisogno di collegarmi a un server interno. Questo server è spento per manutenzione per un periodo di tempo ogni notte, quindi ci sono momenti in cui non è disponibile. Potrebbero inoltre esserci delle volte in cui la connessione wi-fi sul tablet scende.
Se un tablet non riesce a connettersi al server (a causa del fatto che il wi-fi è inattivo o perché il server è inattivo) Voglio che l'app funzioni in modalità offline, in pratica visualizza i dati dal database locale piuttosto che ottenere dati in tempo reale dal database del server. Inoltre, tutti i dati da caricare sul server devono essere messi in coda fino al ritorno online.
Sto considerando di avere un servizio in background che esegue un controllo ogni X secondi per vedere se il wi-fi è collegato e, in tal caso, controlla se il server è disponibile (tramite una richiesta HEAD HTTP). Avrebbe quindi inviato una trasmissione per dire se online o offline e altre app potevano ricevere questa trasmissione e salvare lo stato della connessione. Quindi, ogni volta che c'è un'attività nelle app che richiedono l'accesso al server, possono controllare prima lo stato e decidere come comportarsi.
Il lato negativo di questo è che il servizio sarebbe costantemente in esecuzione in background e potrebbe causare problemi di prestazioni / drenaggio della batteria, anche se avendo fatto un piccolo test non ho visto alcuna prova di questo ancora, quindi non so se in realtà sarebbe mai stato un problema.
Quindi quello che mi chiedo è se questo metodo è una buona idea o no e se c'è un modo migliore per verificare se online o offline.