我对Android编程有疑问。我打算为Androiod 2.2及以上版本(包括平板电脑)编写应用程序。我面临的问题是,各种版本都有不同的API新闻,例如:下载管理器在2.3中首次全面实现,在2.2中我必须手动编程。我正在考虑从模块构建我的应用程序,其中每个模块都适用于特定的Android操作系统版本。你可以把它想象成主要的应用程序,并根据实际操作系统,它触发Android 2.3 API下载管理器或(在2.2的情况下)它启动我的自定义下载管理器,我已经做了。
问题是,如何在代码中解决它?因为,当我使用下载管理器导入我的2.2项目.java文件并使用它的代码时,我无法构建应用程序。我找到了DexClassLoader解决方案,我只安装应用程序的核心和其他“模块”我将根据当前设备的API级别从外部源读取。听起来像“脏”的方法,是不是有什么“清洁”如何解决特定的代码片段,根据API级别的不同?
谢谢你
答案 0 :(得分:1)
有一种方法可以通过尝试加载这样的类来检查正在运行的系统上是否有类(例如DownloadManager):
try {
Class.forName(className);
} catch (ClassNotFoundException e) {
}
如果抛出异常,则表示该类不可用。然后你必须使用自己的班级。 另一方面,如果该类可用,则必须使用单独的类来使用它。
因此,在某些系统上不可用的包含对api的调用的类永远不会加载到不受支持的系统上。
当然,在这种情况下,您必须使用支持您要实现的类的TargetSDK。