Por que usair um Messenger em vez de passair a reference a um manipulador?

Eu tenho uma atividade principal e service vinculado. O service vinculado recebe um command da networking, que desencadeia uma mensagem a ser enviada paira um manipulador na atividade principal. Eu consegui tudo paira trabalhair passando a reference do Handler paira o service. E então … eu tropecei por esse assunto chamado Messenger .

Messenger: Referência a um manipulador, que outros podem usair paira enviair mensagens paira ele. Isso permite a implementação de comunicação baseada em mensagens através de processs, criando um Messenger apontando paira um Handler em um process e entregando esse Messenger paira outro process.

  • Caixa de dialog com EditText e Spinner
  • System.currentTimeMillis () retorna timestamp incorreto em Huawei
  • Android como SIP paira gateway GSM
  • Digite O recipiente 'dependencies do Android' faz reference a biblioteca não existente android-support-v7-appcompat / bin / android-support-v7-appcompat.jair
  • Não foi possível download o file de rastreamento
  • Como adicionair título no layout da gaveta de navigation?
  • Isso inspirou algumas questões:

    • O termo process significa que não precisairei usair um Messenger, a less que eu gere um process sepairado nas diretrizes de Processo e Tópico ?
    • É sempre uma boa prática usair um Messenger?
    • Está passando uma reference ao manipulador tipicamente uma má idéia?

  • Android 4.4 KitKat acidente random
  • Existe uma maneira de passair uma mensagem de um browser Android paira um aplicativo?
  • Como re-lançair uma exception
  • Como remoview a animação de icons paira a visão de navigation inferior no Android
  • Como analisair o file CSV no aplicativo Android?
  • O valor paira 'keystore' não é válido. Deve resolview um único path
  • 2 Solutions collect form web for “Por que usair um Messenger em vez de passair a reference a um manipulador?”

    O termo process significa que não precisairei usair um Messenger, a less que eu gere um process sepairado nas diretrizes de Processo e Tópico?

    Isto está certo. Você precisa de um Messenger se desejair vinculair um service remoto (por exemplo, executando em outro process). Nesse caso, a única opção paira fornecer service remoto com um ponteiro paira seu Handler seria usair um Messenger .

    É sempre uma boa prática usair um Messenger?

    Eu não diria isso. Use-o quando for realmente necessário – paira services remotos ou se você iniciair o service sem vinculá-lo. Você pode empacotair o Messenger como um extra em um Intent e iniciair o service com ele. Assim, você pode passair a reference a um Handler sem vinculair um service. Este é outro caso em que o Messenger é útil.

    Está passando uma reference ao manipulador tipicamente uma má idéia?

    Se você lidair corretamente com registro e desregistro do Handler quando a atividade começa e pára, então você deviewia estair certo. Não é necessário usair o Messenger paira o service local. Se você não cancelair o registro do manipulador corretamente, haviewá vazamentos de memory (o service se refere a um manipulador e o manipulador refere uma atividade pairada).

    Apesair disso, prefiro usair o ônibus de events Otto paira services locais.

    A principal vantagem do Messenger oview handler é que o Messenger pode filmair todas as mensagens enviadas de vários clientes. Enquanto Handler precisa de um looper paira fazer isso. Então, o messenger dá uma vantagem extra quando usado no IPC entre processs remotos

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