在我的应用程序中,Application 类中有一个函数可以触发一些网络请求,这些请求会获取应用程序工作所需的数据。最近我注意到这些请求每天在格林威治标准时间 11:00 定期触发。从我得到的日志来看,似乎并不是每台使用该应用程序的设备都发生这种情况,因为我每天记录的设备 ID 都不同。看起来有一个库(我的代码中没有任何定期代码会在每天的特定时间触发导致它)导致它。在我的应用程序中,我使用了 Appsflyer、Google Play Services、Firebase、Crashlytics 等库,这些库可能每天都会触发同步作业,从而导致问题,尽管无法在生产应用程序中禁用它们中的任何一个。不幸的是,我无法在我的任何设备上重现上述问题,因此到目前为止我无法调试它。有没有人遇到过类似的事情,或者可以就如何推进这个问题给我任何建议,因为这些尖峰请求会导致问题和我们的服务器过载。提前致谢
问问题
150 次
1 回答
1
它可以是用于卸载测量的静默推送通知 (AppsFlyer)。
Android 卸载“静默”推送通知并不总是对客户端静默。这是一个常见的问题,它可能是客户的主要痛苦。
为什么会这样?
客户端可以覆盖firebase的onMessageReceived(RemoteMessage remoteMessage)
方法。然后他们可能在该方法中有一些自己的逻辑,导致推送通知不静音。
解决方案
服务器端发送带有有效负载的“静默”推送{"af-uinstall-tracking":true}
。客户端将需要添加额外的几行代码来处理这个特定的负载。
例如:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if(remoteMessage.getData().containsKey("af-uinstall-tracking")){
return;
} else {
// handleNotification(remoteMessage);
}
}
确保不是你的情况
于 2020-09-23T11:55:09.257 回答