2014-05-03 25 views
6

Sto implementando un'app di chat utilizzando la libreria asmack. Voglio avviare un servizio sempre in esecuzione in cui deve essere eseguita tutta l'attività di gestione della connessione e che deve continuare a ricevere i pacchetti in entrata e salvare i messaggi nel mio database sqlite. E mentre la mia app viene avviata, voglio che anche la mia app venga notificata per i messaggi in arrivo mentre il servizio in background sta inserendo i messaggi nel database sqlite. Come implementare tale struttura con un servizio appiccicoso. È necessario anche il wake lock parziale. Dal momento che, anche le immagini devono essere scaricate utilizzando http in parte a volte su richiesta specifica.Applicazione di chat Android per applicazione chat Smack (XMPP)

risposta

14

È possibile avviare il servizio dopo la registrazione sul server.

onStartCommand del servizio accedere all'utente.

Implementare il servizio con PacketListener, ConnectionListener, InvitationListener

PacketListener per la ricezione di Groupcaht o One to One messaggi di chat.

ConnectionListener per verificare se la connessione al server è connessa o disconnessa.

InvitationListener Per ottenere inviti di gruppo.

Dopo l'accesso riuscito, aggiungere questi listener.

Ora al ricevimento del messaggio, salvare quel messaggio nel database locale e inviare una trasmissione per le attività che desiderano ricevere il messaggio.

Verificare se l'applicazione è in background, se sì, quindi inviare la notifica del nuovo messaggio

Mail me eventuale compagno faccia alcun problema [email protected]

+0

Grazie mille. Voglio anche che l'app continui a ricevere messaggi mentre è in background. Ma per questo l'utente deve essere online, ma quando l'utente lascia la finestra di chat l'utente si disconnette dalla mia app. –

+1

Quindi la connessione deve essere interrotta Implementare ConnectionListener per verificare dove si sta chiudendo la connessione. 1 su per favore per la risposta –

+0

In realtà, voglio avviare un "servizio avviato (unbind)" il cui compito è quello di gestire tutto da ricevere messaggi per l'invio di messaggi. Voglio che il mio cliente sia proprio come un'interfaccia che emetterà i comandi per il servizio E il servizio farà il necessario. –

Problemi correlati