2

在 Android 中很多时候,您会看到从 3.0 版开始不推荐使用方法,应该使用不同的方法。

如果您针对大多数设备(例如从 2.1 版开始),在编写应用程序时如何处理此类事情。您是否为不同的版本多次编写相同的应用程序?然后在 Google Play 中为每个 APK 创建不同的配置文件?我觉得这有点过分,没有意义。请让我知道处理这种情况的正确方法是什么

谢谢

4

2 回答 2

4

最简单的方法是简单地检查您的应用程序正在运行的版本,并采取相应的行动。IE

if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ) {
   [code for HC and up]
} else {
   [code for older versions]
}

您可以在此处找到所有版本代码。请记住,您需要将应用程序targetSdk设置为可能的最新版本。然而,这是有风险的,因为您可以轻松使用旧平台上不可用的方法,并且您的应用程序会崩溃,因为编译器不会警告您。为了减轻这种情况,通常有助于注意您使用的是什么:),但也可以将此类“有风险”的代码包装到库或实用程序类中,这样您就可以确定您的其他代码不会自己做这种诡计。它还有助于在http://d.android.com/上的文档上设置 API 过滤器(左侧标题栏上的这些小向上/向下箭头,在“Android APIs”旁边)到您计划支持的最低版本。以防万一不经常使用,你有机会在那里偷看“视觉上”抓住风险

还有用于 Eclipse 的插件进行此类检查,但我自己不使用它,目前不记得它的名称。

于 2012-09-11T14:15:39.880 回答
0

好吧,不,我们不会创建多个应用程序。

第一个解决方案是检查这是哪个 android 版本并采取相应措施:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB){
    //do something
} else {
    //do something else
}

基于第一个解决方案的第二个解决方案是创建一个定义基本功能的抽象类,以及具有特定于版本实现的子类。抽象类检查版本并创建所需的子实例。您只需在需要时调用抽象方法。 阅读更多关于它的信息。

第一个解决方案适用于小任务。第二个更适合更复杂的情况(例如使用 tabHost 与新的选项卡导航模式)。

于 2012-09-11T14:31:00.420 回答