比如DownloadManager这个类,只有level 9以上才支持。
我在程序中,有没有类似一个宏定义的功能,
先判断现在系统的level,然后如果低于9,就不编译执行有DownloadManager的方法,而去执行我自己写的一个下载的方法呢??
高于等于level 9,才会用DownloadManager去下载。谢谢。分不多了求大神给方法。谢谢!

解决方案 »

  1.   

    首先在manifest里把android:minSdkVersion 的api版本写低点 然后程序里可以用android.os.Build.VERSION.SDK得到aip版本,再进行判断,如果android.os.Build.VERSION.SDK得到的版本大于等于9,就用DownloadManager去下载
      

  2.   

    这个我知道的。关键问题是:用户android.os.Build.VERSION.SDK低于9的话,装上程序直接crash了。而且用低于9的sdk,用DownloadManager 是报错的。没有这个sdk的
    我要的是一种语法,像c一样的。可以ifundefined   ifdefined, java里有没有等价于,或是功能相似的方法啊?
    我是想把两种下载方法,一种用DownloadManager的,一种我自己写的都写在一个程序里,用户安装后,可以先判 断版本号,然后选择用哪个不知道说明白没。。
    我以前是搞c的,对java还是入门啊。求神帮忙。
      

  3.   

    google一下“android ant build”
    在build.xml里可以设置指定的宏,这样在java文件里就能支持宏定义是否编译的功能了。
      

  4.   

    if(sdk< sdkversion){
    //加载低版本的实现activity的代码 
    }else{
    //加载高版本实现activity的代码
    }上面两个部分打开不同的activity 就可以了,不可以在一个activity写两个版本的代码,那样,在加载到内存的时候,会判断没相关API就会报错!