"Service MeasurementBrokerService is in use" está mostrando no meu processo de Aplicação

encontrei um problema que a aplicação GooglePlayServices está a usar o meu processo de aplicação para o seu serviço e também a mostrar que os processos contam como 2.
eu anexei a imagem para o mesmo. Não faço ideia porque está a acontecer.
Ele está tomando mais memória comparar com o meu processo app.


Alguém, por favor, pode ajudar-me nisto.

enter image description here


mostrar aqui dois processosenter image description here

Author: Noundla, 2015-12-17

7 answers

Encontrei isto hoje depois de adicionar gcm à minha aplicação e não consigo descobrir qual é exactamente o uso disto {[[0]}. A única coisa que encontrei foi este comentário:

" eu também o tinha e acho que está relacionado com o ouvinte de notificação, uma vez que parece que impedir o acesso de notificações de macrodroid faz com que pare. (espero que seja claro, meu Inglês é apenas o restante dos tempos de escola...)"

Aqui.
 2
Author: Guy S, 2016-02-17 07:49:33
Já vimos este serviço aparecer também. A questão acabou por ser a utilização do Google Analytics juntamente com um serviço de Notificaçãolistenerservice. Por algumas razões, estas duas coisas não funcionaram bem e fizeram com que o MeasurementBrokerService estivesse sempre em execução, consumindo uma quantidade significativa de memória.

A solução para nós era remover o Google Analytics para uma solução de análise alternativa.

 2
Author: David Zhao, 2017-02-01 07:06:43

Pessoas que ainda verificam este tópico para uma resposta, eu encontrei uma solução e postei uma resposta em:

O que é o Google Play services MeasurementBrokerService e como pará-lo?

Verifiquei que, de alguma forma, o serviço de medição do google estava a funcionar no meu dispositivo.

Recorri à seguinte abordagem:

As seguintes paragens de recolha de dados por base de fogo.

Https://firebase.google.com/support/guides/disable-analytics diz - nos a seguinte abordagem

<meta-data android:name="firebase_analytics_collection_deactivated" android:value="true" />
Isto por si só ainda não pode impedir a medição de inicialização.

O segundo passo que se resolveu é adicionar o seguinte ao ficheiro de gradle do nível da aplicação:

configurations {
    all*.exclude group: 'com.google.firebase', module: 'firebase-core'
}

Isto basicamente remove todo o código que a análise da base firebase usa.

No caso de ainda não funcionar, certifica-te que o gradle não inclui o serviço de broad play. dependência

Eg: compile

'com.google.android.gms:play-services-location:10.0.1'

Em vez de

'com.google.android.gms:play-services:10.0.1'

O pior caso e eu não testei isto porque o acima resolvido para mim é:

Https://developers.google.com/analytics/devguides/collection/android/v4/advanced

O Google deve parar de colocar coisas indesejadas sem a permissão do dev IMHO. Espero que isto ajude alguém.
 2
Author: Kushan, 2017-05-23 11:53:15
Excluir bibliotecas firebase-core no seu ficheiro gradle. Enfrentei o mesmo problema.
configurations {
all*.exclude group: 'com.google.firebase', module: 'firebase-core'

}

Para mais detalhes sobre bibliotecas firebase, basta percorrer o seguinte link

Http://blog.safedk.com/technology/mobile-sdks-firebase-or-play-services/

 1
Author: Kavita_p, 2017-06-11 07:19:56
Isto pode estar relacionado com a integração do Google Analytics no seu aplicativo. Remova as referências do Google Analytics do seu código Java, nível do projeto e arquivos de gradle do nível do aplicativo. Esta fuga está acontecendo apenas nas últimas versões do Google Analytics. Você pode integrar as versões antigas do Google Play Services como 7.3.0 que não tem este problema para corrigir esta fuga.
 0
Author: venkat, 2016-04-10 06:13:54

Eu poderia resolver o problema ajustando a versão de Gradle para 2.0.0 a partir de 2.3.2. Por causa disso, eu tive que colocar o Gradle wraper para 2.14.1 de 3.3.

Também voltei ao buildToolsVersion '23.0.1' do buildToolsVersion '25.0.2'.

Ao compilar o projecto desta forma, provavelmente fez muitas alterações no ambiente de construção, porque quando eu mudei tudo de volta para a versão original o problema desapareceu, nenhum MeasurementBrokerService está mais em execução.

 0
Author: plexnor, 2017-09-13 23:15:59

A solução que encontrei é mover o NotificationListenerService para o seu próprio process. Enquanto o Google tem Serviços de jogo em outro.

Contexto

Em primeiro lugar, já é uma boa decisão separar o {[[2]}, porque esta coisa está a correr constantemente depois de o utilizador conceder a permissão BIND_NOTIFICATION_LISTENER_SERVICE.

Basicamente, a menos que declarado o contrário, o seu aplicativo vai usar um processo. Isto significa que dentro da página "Serviços em execução", para além de todos os dados de notificação armazenado no NotificationListenerService você vai ver todo o seu lixo que ainda está para ser recolhido por GC.

Como

Para executar um serviço no seu próprio processo, você precisa adicionar o atributo android:process no seu Manifest.xml

<service android:name="com.mypackage.services.NotificationService"
android:label="@string/app_name"
android:process=":myawesomeprocess"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">

Coisas para recordar

Não se pode comunicar entre processos de forma regular! Você não será capaz de acessar outra classe A partir de um serviço que reside em seu próprio processo. A única solução é usar Emissões
//Send
Intent intent = new Intent("com.mypackage.myaction");
context.sendBroadcast(intent);

//Receive
registerReceiver(broadcastReceiver, new IntentFilter("com.mypackage.myaction"));

BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action!=null&&action.equals("com.mypackage.myaction")) {
            //
        }
    }
};

//Don't forget to unregister
unregisterReceiver(broadcastReceiver);

Certifique-se que usa context e não LocalBroadcastManager, porque não funciona com processos.

 0
Author: Fossor, 2018-02-28 19:01:53