在Android 2.0中,进行了更改,以便默认情况下使用null Intent重新启动被杀死的服务。但是,这仅适用于应用程序针对API级别5或更高级别(我稍微简化一点,请参阅http://android-developers.blogspot.com/2010/02/service-api-changes-starting-with.html)。由于我的应用程序针对API级别4,因此我隐藏了大于5级的API,并且没有意识到这一点。
当我需要Froyo的一个功能时,我碰到了目标版本,突然我的应用程序崩溃了,因为我的onStart方法没有为null Intent做好准备。
这是一个简单的解决方案,但我担心还有其他类似的行为变化,我在更改目标版本时并不知道。这种情况也不是很明显,因为我们的服务通常会自行停止,所以它需要导致服务以不寻常的方式停止的情况。
谷歌或其他任何人在提高目标版本时,是否列出了描述此类内容的列表?
答案 0 :(得分:1)
API差异报告:http://developer.android.com/sdk/api_diff/10/changes.html
您提及的更改也会列出:API 4-> 5 Service.onStart(..)
答案 1 :(得分:0)
我刚刚发现了另一种资源,所以我也将其作为答案留在这里。它没有API差异那么彻底,但它很有帮助。 Build.VERSION_CODES文档总结了主要的行为差异:
http://developer.android.com/reference/android/os/Build.VERSION_CODES.html