Domanda

Ho due classi, uno è un un'attività standard , l'altro un servizi . Vorrei il servizio di aggiornare un TextView (via .setText()) della attività su alcuni eventi che accadono all'interno del servizio.

Ho cercato di raggiungere questo programmando qualcosa di simile a un setter metodo all'interno del Activity-Class, ma TextViews non accetto un static riferimento, e quando provo invocando un'istanza della classe di attività, invece (via MyActivityClassName aVariable = new MyActivityClassName();), ottengo un NullPointer Eccezione , anche se la vista di domande è visibile al momento della chiamata.

Qualcuno potrebbe dirmi che cosa sto facendo male :-)? E 'probabilmente più di una domanda di base Java che un Android-one, ma dal momento che potrebbe avere a che fare con la natura di Android-services, ho ancora aggiunto l'androide-tag.

Grazie per il vostro aiuto!

È stato utile?

Soluzione

  

Vorrei il servizio per aggiornare un   TextView (via .setText) del   Attività su alcuni eventi che accadono   all'interno del servizio.

Che vi consiglio vivamente una maggiore disaccoppiamento logico. Hanno la Service dire la Activity per aggiornare il TextView.

Si può fare tramite un onda Intent , oppure avendo la Activity fornire un oggetto ascoltatore che le chiamate Service. In entrambi i casi, assicurarsi che l'Activity stacca dal servizio (annulla la registrazione del ricevitore ascoltatore o Intent broadcast), per non causare una perdita di memoria.

E, naturalmente, questo funziona solo se l'attività è effettivamente in esecuzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top