在Android中很多时候,您会看到从3.0版开始不推荐使用某个方法,并且应该使用不同的方法。
如果您针对大多数设备(比如版本2.1),如何在编写应用程序时处理此类事情。您是否针对不同版本多次为同一个应用编写代码?然后在Google Play中为每个APK创建不同的个人资料?我觉得这有点过分,没有意义。请告诉我处理此类情况的正确方法
由于
答案 0 :(得分:4)
最简单的方法是简单地检查您的应用正在运行的版本。即。
if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ) {
[code for HC and up]
} else {
[code for older versions]
}
您可以找到所有版本代码here。请记住,您需要在targetSdk
设置为最新版本的情况下构建应用。这是有风险的,因为您可以轻松使用旧平台上不可用的方法,并且您的应用程序会崩溃,因为编译器不会警告您。为了缓解这种情况,通常有助于注意你正在使用的是什么:)而且还要将这些“有风险”的代码包装到库或实用程序类中,这样你就可以确定没有其他代码本身可以做到这一点。它还有助于在http://d.android.com/处的文档上设置API过滤器(左侧标题栏上的这些小的向上/向下箭头,位于“Android API旁边)
)您计划支持的最低版本。如果它不是经常使用的东西,那么你有机会偷看“风险”的风险
还有Eclipse的插件可以进行此类检查,但我自己并没有使用它,现在也记不住它的名字了。
答案 1 :(得分:0)
好吧,不,我们不会创建多个应用程序。
第一个解决方案是检查这是哪个Android版本并采取相应行动:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB){
//do something
} else {
//do something else
}
基于第一个解决方案的第二个解决方案是创建一个定义基本功能的抽象类,以及具有特定于版本的实现的子类。 抽象类检查版本并创建所需的子实例。 您只需在需要时调用抽象方法。 Read more about it
第一种解决方案适用于小型任务。第二种方法适用于更复杂的情况(例如使用tabHost与新的标签导航模式)。