我根据latest tutorial from google在我的项目中实施了推送通知。
我的应用运行了2个后台服务。
当我查看我的应用占用的RAM内存时,我看到(例如):
- 使用的总内存 117 Mb
- 应用程序使用的内存 13 Mb
- Google Play服务(com.google.android.gms) - 104 Mb(!)。
如下所示,服务MeasurementBrokerService正在使用中。
我做错了什么? 为什么推送通知需要这么多内存? 什么是MeasurementBrokerService,是否可以禁用它?
答案 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());
来自我的背景服务。
出于某种原因。亚历杭德罗斯解决方案对我不起作用。