Android GCM MeasurementBrokerService占用太多内存

时间:2016-09-29 12:23:56

标签: android memory-management google-cloud-messaging

我根据latest tutorial from google在我的项目中实施了推送通知。

我的应用运行了2个后台服务。

当我查看我的应用占用的RAM内存时,我看到(例如):
  - 使用的总内存 117 Mb
  - 应用程序使用的内存 13 Mb
  - Google Play服务(com.google.android.gms) - 104 Mb(!)
如下所示,服务MeasurementBrokerService正在使用中。

我做错了什么? 为什么推送通知需要这么多内存? 什么是MeasurementBrokerService,是否可以禁用它?

2 个答案:

答案 0 :(得分:1)

你可以试试这个,

在AndroidManifest的开头添加以下行:xmlns:tools =“http://schemas.android.com/tools”

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="cl.datacomputer.alejandrob.example"
   xmlns:tools="http://schemas.android.com/tools">

并在应用程序内部添加此服务标签:

<application
    android:name="android.support.multidex.MultiDexApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:screenOrientation="portrait">

    <service android:name="com.google.android.gms.measurement.AppMeasurementService"
        tools:replace="android:enabled"
        android:enabled="false"
        android:exported="false"/>

我知道这不是一个好的解决方案,但您可以禁用导致内存泄漏的服务。

对不起,如果我的英语不好。

问候。

亚历杭德罗布尔戈斯。

答案 1 :(得分:0)

此处有一个Dublicate问题:"Service MeasurementBrokerService is in use" is showing in my application process

以下是我对两者的回答。

通过删除

,我摆脱了这项服务和其他几项服务
NotificationCompat.Builder
...
startForeground(mNotificationId, notificationBuilder.build());

来自我的背景服务。

出于某种原因。亚历杭德罗斯解决方案对我不起作用。