Checklist to examine when reviewing Android code - synthesized over a few years of running into these problems.
- Are there any long running methods in a BroadcastReceiver?
- Are operations that run in the background without an active application a) off the main thread and b) handled by a Service class?
- Are Context objects passed around are only obtained from getApplicationContext()?
- Is the right storage mechanism being used when saving data?
- Is data loaded to a List or GridView coming from a ContentProvider? If not, have a decent reason.
- Does the project build?
- Are there any wildcard dependences in gradle?