1

在我的应用程序中,Application 类中有一个函数可以触发一些网络请求,这些请求会获取应用程序工作所需的数据。最近我注意到这些请求每天在格林威治标准时间 11:00 定期触发。从我得到的日志来看,似乎并不是每台使用该应用程序的设备都发生这种情况,因为我每天记录的设备 ID 都不同。看起来有一个库(我的代码中没有任何定期代码会在每天的特定时间触发导致它)导致它。在我的应用程序中,我使用了 Appsflyer、Google Play Services、Firebase、Crashlytics 等库,这些库可能每天都会触发同步作业,从而导致问题,尽管无法在生产应用程序中禁用它们中的任何一个。不幸的是,我无法在我的任何设备上重现上述问题,因此到目前为止我无法调试它。有没有人遇到过类似的事情,或者可以就如何推进这个问题给我任何建议,因为这些尖峰请求会导致问题和我们的服务器过载。提前致谢

4

1 回答 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 回答