首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

怎么同一份代码兼顾新老的API

2012-12-28 
如何同一份代码兼顾新老的API实际编程中如果代码需要同时考虑Android1/2的API时,如何在同一份代码中做到兼

如何同一份代码兼顾新老的API

实际编程中如果代码需要同时考虑Android1/2的API时,如何在同一份代码中做到兼容?

?

其实在Android2.2的开发包Sample (/ApiDemos/src/com/example/android/apis/app/ForegroundService.java)中就有很好的例子。

?

此处主要考虑Android 2.2中 Service类中新添加的接口

startForeground(int id,stopForeground(boolean removeNotification)

?

?

        try {            mStartForeground = getClass().getMethod("startForeground",                    mStartForegroundSignature);            mStopForeground = getClass().getMethod("stopForeground",                    mStopForegroundSignature);        } catch (NoSuchMethodException e) {            // Running on an older platform.            mStartForeground = mStopForeground = null;        }

??

开始时对这段代码不是很理解,为什么明明可以直接调用还要拐一个弯,通过反射来调用。看到后来的代码明白了,为了兼容Android1的代码。即如果mStartForeground / mStopForeground? 为空就表示是Android1的环境。

?

?

该种方法在实际工作中也经常用到,可以让客户端代码不要显示依赖于API。

?

?

在此有另一个问题,如果是判断API中是否有新加入的类不知此方法是否可行?

?

?

?

?

热点排行