Notifica attività dal servizio

Sto cercando di avviare un Service dalla mia Activity per cercare i cambiamenti in una pagina web, è un'applicazione privata in modo da non preoccuparti della durata della batteria …

Ma vorrei passare i dati dal mio Service alla mia Activity … non riesco a trovare un modo per call l' Activity dal mio Service . Come posso raggiungere questo objective?

  • Come leggere i dati dal file XLS (Excel)
  • Attività multiple legate a un servizio
  • AndroidAnnotations Niente generato, attività vuota
  • Quando non call il metodo super () quando si supera?
  • Invio di un valore boolean a un PLC da Android
  • get la latitudine e la longitudine utilizzando il codice postale
  • Applica stile diverso al button quando viene premuto
  • Il prefisso degli spazi dei nomi inaspettati "xmlns" trovato per il tag LinearLayout
  • Utilizzo di un progetto di libreria di Android in un altro progetto
  • EditText aggiunto non è un TextInputEditText. Si prega di passare ad utilizzare quella class invece
  • Come uscire da un'applicazione Android usando il codice?
  • Come aggiungere la riproduzione video e la risorsa all'applicazione android
  • 4 Solutions collect form web for “Notifica attività dal servizio”

    Come indicato da Alex, puoi legarsi al servizio e passare una sorta di listener o di richiamata al servizio da utilizzare per gli events.

    Oppure, è ansible utilizzare un Intent trasmissione, forse utilizzando methods come setPackage() per limitare l'ambito della trasmissione.

    Oppure, è ansible utilizzare createPendingResult() per creare un PendingIntent che si passa come Intent extra al servizio – il servizio può quindi utilizzare tale PendingIntent per triggersre onActivityResult() nell'attività.

    Oppure, è ansible utilizzare un ResultReceiver .

    Oppure, è ansible utilizzare un Messenger .

    (anzi, non ho provato questi ultimi due approcci, ma credo che lavoreranno qui)

    Un'altra alternativa: se il tuo servizio aggiorna i provider di contenuti, l'attività può essere notificata tramite ContentObserver . Questo sarebbe sufficiente se il tuo servizio scaricava alcuni dati dal server e vuoi semplicemente visualizzare contenuti nuovi nell'attività.

    Alcuni modi brutti:

    1.) Se l'attività non è ancora iniziata, utilizza intent e startActivity , ma ricordi di intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    2.) Altrimenti se l'attività è già stata avviata, puoi scrivere il proprio metodo di richiamata nell'attività e registrare il metodo nel servizio, quindi call direttamente il metodo nel servizio.

    Speri di trovare un modo intelligente.

    Penso che anche la trasmissione funziona bene, puoi scrivere una class interna statica per ricevere la trasmissione e iniziare l'attività. Ma è anche brutto a mio parere.

    Il meccanismo ResultReceiver è stato spiegato in un altro post: – Servizio API restful Tuttavia non functionrebbe in tutti i casi. Fai riferimento al mio commento su quel post. Il broadcast limitato o il meccanismo PendingIntent sembrano più adatti.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.