2010-09-26 15 views
7

Ho setacciato il web, non riesco a capire come fare un servizio Android in realtà FARE qualsiasi cosa. Ho trovato molti esempi su come crearne uno di base, ma nessuno degli esempi sembra mostrare come chiamare il servizio da un'attività e fare fare qualcosa al servizio.Servizio Android - Non riesco a trovare un esempio

Ad esempio, mi piacerebbe avere un servizio in esecuzione che invierà un messaggio di testo TCP a un server quando richiesto. Posso fare il servizio, e farlo funzionare, ma come diavolo ho l'Attività effettuare la chiamata che passa una stringa al metodo nel servizio che invierà il messaggio TCP?

Sembra che dovrebbe essere abbastanza semplice, ma non riesco proprio a capire, o trovare un esempio, come farlo. Forse non sto capendo per che cosa dovrebbe essere usato un servizio? Io sicuramente lo vogliono correre per un lungo periodo di tempo, non gui necessario, e le richieste di "servizio" per inviare messaggi TCP .... hum ...

+0

Proprio come un punto di chiarimento (questo è qualcosa che mi ci è voluto un po 'per capire), il concetto di "Servizio" su Android non è come il servizio di Windows, che viene eseguito in background senza una testa. È più simile a un thread di background worker, lo si crea e gli si dice di fare il suo lavoro, quindi può generare un evento quando è fatto. –

risposta

1

posso fare il servizio, e lo hanno gestito, ma come diavolo ho l'Attività effettuare la chiamata che passa una stringa al metodo nel servizio che invierà il messaggio TCP?

Utilizzare il modello di rilegatura locale. In this sample project, un'attività si collega a un servizio, al fine di ottenere alcuni dati recuperati da quel servizio (previsioni del tempo) in base a un cambio di posizione. In this sample project, un'attività si collega a un servizio per registrare un oggetto listener da notificare delle modifiche nella cronologia di identi.ca di un utente.

Oppure utilizzare IntentService e startService() per inviare un comando da elaborare da IntentService. In this sample project, implemento uno IntentService che esegue uno script BeanShell fornito da un chiamante. In this sample project, implemento un'attività che invia lo script BeanShell allo IntentService. Questa coppia di esempi è progettata per dimostrare l'utilizzo di questa tecnica tra le applicazioni, ma l'approccio funziona bene anche in una singola applicazione.

voglio assolutamente in funzione per un lungo periodo di tempo

No you don't.

+1

Se stai imparando semplicemente ad attenermi all'API e a lasciare il modello di binding da solo, è molto più difficile da capire e ti consente di verificare costantemente se il tuo riferimento al servizio è nullo. IntentService è un buon punto di partenza per http://developer.android.com/reference/android/app/IntentService.html – schwiz

Problemi correlati