基于SDK版本加载类

时间:2010-06-07 12:31:49

标签: android class sdk load version

有什么办法可以根据手机运行的操作系统版本来加载课程吗? 例如: 我制作了一个需要1.6+ Android的应用程序。有没有办法根据手机运行的操作系统加载一个类或另一个类?我特意问这个联系方式。 数据库从1.6更改为2.0,旧版本不检索新OS手机上的联系人。我仍然希望保留我的1.6要求,但与此同时我想要2.0+手机来访问应用程序的联系人部分。

我可以制作2个API,以某种方式将它们与应用程序一起打包并决定我选择导入它吗?

2 个答案:

答案 0 :(得分:7)

是的! Here is a sample project说明了这项技术。

步骤1:创建一个接口或抽象类,描述您尝试在所有API版本中获取的数据。

步骤2:创建接口/抽象类的具体实现/子类,每个API级别一个。

步骤3:在某处,检测您需要哪一个并使用它。在我的示例中,我通过查看静态上下文中的android.os.Build.SDK值并创建我的“bridge”类的单例来完成此操作。

答案 1 :(得分:3)

您可以检查操作系统版本,然后使用以下内容加载正确的类:

import android.os.Build.VERSION;
....
...

if(VERSION.SDK.equals("4")){ //Android 1.6
 //Load an instance of your Class for android 1.6
} else {
   //Load an instance of your Class for android > 1.6
}