web-dev-qa-db-fra.com

"Service MeasurementBrokerService est en cours d'utilisation" s'affiche dans mon processus de candidature

J'ai rencontré un problème d'utilisation de l'application GooglePlayServices par mon processus de demande et indiquant également que le nombre de processus est égal à 2.
J'ai joint la capture d'écran pour la même chose. Je ne sais pas pourquoi cela se passe .
Il faut plus de mémoire comparé à mon processus d'application.


Quelqu'un peut m'aider s'il vous plait .

 enter image description here


Afficher deux processus ici enter image description here

14
Noundla Sandeep

Les personnes qui vérifient encore ce fil pour une réponse, j'ai trouvé une solution et posté une réponse à l'adresse:

Qu'est-ce que les services Google Play MeasurementBrokerService et comment l'arrêter?

J'ai vérifié que le service Google AppMeasurement fonctionnait toujours sur mon appareil.

J'ai eu recours à l'approche suivante:

Ce qui suit arrête la collecte de données par firebase.

https://firebase.google.com/support/guides/disable-analytics nous indique l'approche suivante

<meta-data Android:name="firebase_analytics_collection_deactivated" Android:value="true" />

Cela seul ne peut toujours pas empêcher l'appMeasurement de s'initialiser.

La deuxième étape résolue consiste à ajouter les éléments suivants au fichier de gradation au niveau de l'application:

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

Cela supprime fondamentalement tout le code utilisé par Firebase Analytics.

Au cas où cela ne fonctionnerait toujours pas, assurez-vous que le dégradé n'inclut pas la dépendance au service de jeu large

par exemple: compiler 

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

au lieu de 

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

Le pire des cas et je n'ai pas testé cela car ce qui précède l'a résolu pour moi est:

https://developers.google.com/analytics/devguides/collection/Android/v4/advanced

Google devrait vraiment arrêter de mettre des choses indésirables sans la permission du développeur, à mon humble avis. J'espère que cela aide quelqu'un

2
Kushan

Excluez les bibliothèques firebase-core dans votre fichier gradle. J'ai fait face au même problème.

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

}

Pour plus de détails sur les bibliothèques Firebase, cliquez sur le lien suivant

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

2
Kavita_p

Nous avons vu ce service apparaître également. Le problème s'est avéré utiliser Google Analytics avec un NotificationListenerService.

Pour certaines raisons, ces deux choses ne se sont pas bien combinées et ont fait que MeasurementBrokerService est toujours en cours d'exécution et utilise une quantité de mémoire importante.

La solution pour nous était de supprimer Google Analytics pour une solution analytique alternative.

2
David Zhao

Je l’ai rencontré aujourd’hui après avoir ajouté gcm à mon application et je ne sais plus quelle est exactement l’utilisation de cette MeasurementBrokerService.

"Je l'avais aussi et je suppose qu'il est lié à l'écoute des notifications, car il semble que l'accès aux notifications de Macrodroid l'empêche de s'arrêter.

de ici

2
Guy S

La solution que j'ai trouvée consiste à déplacer la NotificationListenerService dans sa propre process. Tout en ayant Google Play Services sur un autre.

Contexte

Tout d’abord, c’est déjà une bonne décision de séparer la NotificationListenerService, car cette chose est en cours d’exécution en permanence après que l’utilisateur ait accordé la permission BIND_NOTIFICATION_LISTENER_SERVICE

Fondamentalement, sauf indication contraire, votre application utilisera un processus. Cela signifie qu'à l'intérieur de l'onglet "Services en cours", en plus de toutes les données de notification stockées dans NotificationListenerService, vous verrez toutes vos ordures qui doivent encore être collectées par GC. 

Comment

Pour exécuter un service dans son propre processus, vous devez ajouter l'attribut Android:process dans votre 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">

Choses à retenir

Vous ne pouvez pas communiquer entre processus de manière régulière! Vous ne pourrez pas accéder à une autre classe à partir d'un service qui réside dans son propre processus ... La seule solution est d'utiliser des émissions.

//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);

Assurez-vous que vous utilisez context et non LocalBroadcastManager, car cela ne fonctionne pas avec les processus.

0
Fossor

Cela pourrait être lié à l'intégration de Google Analytics dans votre application. Supprimez les références Google Analytics de vos fichiers de code Java, de niveau de projet et de niveau d'application. Cette fuite ne se produit que dans les dernières versions de Google Analytics. Vous pouvez intégrer les anciennes versions des services Google Play, telles que 7.3.0, qui ne résolvent pas ce problème.

0
venkat

Je pouvais gérer le problème en reportant la version 2.3.0 de Gradle à la version 2.0.0. À cause de cela, je devais régler le wrapper Gradle sur 2.14.1 à partir de 3.3.

Aussi, je suis revenu à buildToolsVersion '23 .0.1 'de buildToolsVersion '25 .0.2'.

En compilant le projet de cette manière, de nombreuses modifications ont probablement été apportées à l'environnement de génération. En effet, lorsque le problème a disparu, le problème a disparu. Aucun MeasurementBrokerService n'est en cours d'exécution.

0
plexnor