We have an Android app with over a million active users. We recently started receiving feedbacks from users complaining that our app consumes huge amount of network data when in background (around 0.5-3 gigabytes in a week).

The app doesn't have any operations in the background except for the push notifications receiver which doesn't have any network calls. the data consumption on the background should be less than 10 megabytes for a week for sure. 

Is there a code I can use to help me detect the cause for this data consumption when my app is in background?

Is there a way to limit data access from all SDKs when my app is in background? 

In general, what's the best way to approach such a problem?

Thanks 

**Update:**

In our case we found eventually that the source of the problem was from an SDK we integrated with the app. 

If you have the same issue, I suggest you look closely at all your 3rd party code in the app, especially new libraries you added.

Second, check all the services that your app define in the manifest, look closely if any of those services can be the source for this problem.

Third, look for places in the app that use network operation with a re-try mechanism, there could be an infinite "while loop" trying to send some data to a server (maybe some sort of reporting or analytics).