Ho un servizio Android che avvia e mantiene un thread in background.Esegui codice sul thread principale in Android senza accedere ad un'attività?
Di tanto in tanto, il thread in background deve eseguire una richiamata sul thread principale. Sono perplesso su come farlo.
Non riesco a chiamare this.runOnUiThread perché "this" è un'istanza di Service, non Activity e un servizio non ha il metodo runOnUiThread.
Non riesco nemmeno a creare o eseguire un AsyncTask, poiché la documentazione di AsyncTask indica che sia il costruttore che il metodo di esecuzione devono essere richiamati dal thread dell'interfaccia utente.
Devo mantenere un riferimento all'attività che sta utilizzando il servizio e chiamare il suo metodo runOnUiThread oppure esiste un altro modo per eseguire qualcosa sul thread dell'interfaccia utente?
Grazie.
"il thread in background deve eseguire una richiamata sul thread principale" - perché? – CommonsWare
L'utente del servizio è un'attività. Ha bisogno di callback sul thread principale in modo che possa aggiornare gli elementi dell'interfaccia utente. Suppongo che potrei richiamarlo sul thread in background e renderlo responsabile della pianificazione di un callback del thread dell'interfaccia utente, ma sarebbe più conveniente per il consumatore del servizio se potessi farlo. –
@Cruceo: Oh, cieli no. – CommonsWare