In Android 2.0, changes were made so that services that were killed would be restarted with a null Intent by default. However, this only applied if the app targeted API Level 5 or greater (I’m simplifying a little, see http://android-developers.blogspot.com/2010/02/service-api-changes-starting-with.html). Since my app targeted API level 4, I was hiding APIs greater than level 5, and was not aware of this.
When I needed a feature from Froyo, I bumped the targeted version, and suddenly my app was crashing because my onStart method was not prepared for a null Intent.
It was an easy fix, but I’m concerned that there are other behavioral changes like this that I’m not aware of when changing the targeted version. This case was not immediately obvious, either, because our service normally stops itself, so it requires circumstances that result in the service being stopped in an unusual way.
Has Google or anyone put together a list describing things like this to look out for when increasing the target version?
There is API differences report: http://developer.android.com/sdk/api_diff/10/changes.html
The change you mention is also listed: API 4->5 Service.onStart(..)