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
È 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]
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. –
Quindi la connessione deve essere interrotta Implementare ConnectionListener per verificare dove si sta chiudendo la connessione. 1 su per favore per la risposta –
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. –