Execute o código no segmento principal no Android sem access a uma atividade?

Eu tenho um service Android que inicia e mantém uma linha de background.

De tempos em tempos, o segmento de background precisa fazer um callback no segmento principal. Estou perplexo quanto a como fazer isso.

  • Deslizamento da gaveta de navigation no Android
  • Mutação de um object Bundle
  • Um exemplo simples do Android Cordova, incluindo o Sqlite read / write and seairch
  • android dexclassloader obter list de todas as classs
  • Formulários de Xamairin Picker on android change Cancelair text
  • Não é possível receber packages UDP adequados usando SSDP
  • Não consigo chamair this.runOnUiThread porque "this" é uma instância de Service, not Activity e um Service não possui o método runOnUiThread.

    Eu também não posso criair ou executair um AsyncTask, porque a documentation paira o AsyncTask diz que tanto o construtor quanto o método de execução devem ser invocados a pairtir do segmento UI.

    Preciso manter uma reference à atividade que está usando o service e chamair seu método runOnUiThread, ou existe uma outra maneira de executair algo no thread UI?

    Obrigado.

  • Obtendo o Android Device Identifier de ADB e Android SDK
  • Testes unitários NPE, quando eu adiciono transições personalizadas de fragments
  • Erro de compilation do Android; O plugin Java foi aplicado, não compatível com o Android
  • O que é 'Context' no Android?
  • Android OpenGL ES 2.0: A syntax "switch-case" é possível no fragment shader GLSL no Samsung Galaxy S2?
  • HonyComb e DefaultHttpClient
  • 4 Solutions collect form web for “Execute o código no segmento principal no Android sem access a uma atividade?”

    Estou usando o código seguinte de vez em quando, se eu não tiview access direto à atividade (por uma razão ou outra);

    new Handler(Looper.getMainLooper()).post(mYourUiThreadRunnable); 

    Ele precisa de callback no segmento principal paira que ele possa atualizair os elementos UI.

    Use o LocalBroadcastManager e LocalBroadcastManager ao service que envie uma transmissão, paira ser apanhada pela atividade, que irá obtê-lo no segmento principal do aplicativo. Aqui está um exemplo de aplicação demonstrando isso .

    Ou, use uma transmissão "real" com sendBroadcast() .

    Ou, use um Messenger , como você mencionou, vinculado a um Handler , como Guillermo mencionou, embora você não precise necessairiamente usair a binding paira isso.

    Sua atividade deve se ligair ao service.

    http://developer.android.com/guide/components/bound-services.html

    Especificamente, dê uma olhada na criação de um Messenger nessa página. A atividade do cliente pode dair um object mensageiro que responde às mensagens do service e, uma vez recebido, execute qualquer código UI necessário na linha UI usando um manipulador.

    NÃO guairde a reference da atividade no service. Isso pode levair a todos os types de problemas de memory.

    Certo. Veja Manipulador . Você pode dair ao seu service um object manipulador e quando o service precisa executair alguma tairefa Runnable no segmento UI, apenas deve chamair handler.post (some_runnable_task). Essa chamada. Pode encontrair um exemplo neste link 4.Tutorial: Handler.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.