android利用反射来解决版本兼容问题。
来源:互联网 发布:淘宝图片空间协议 编辑:程序博客网 时间:2024/06/05 07:44
android每一次版本更新都有许多令人期待的新特性,伴随着api里会添加新的类,或某些类功能的增强。
但由此又会增加兼容性问题,举个例子,在android2.0以后,在activity里可以直接调用
overridePendingTransition(int,int)来实现activity跳转动画。但在2.0之前的api里根本没有这个方法。
所以你的程序在android2.0以下根本无法运行,这时考虑到兼容性问题,你很可能会选择放弃对该新方法的使用。
但有没有即简洁,有能保证兼容的方式呢?答案是肯定的,可以用反射来调用,代码如下:
try{
//For Android>2.0
Method methid=Activity.class.getMethod("overridePendingTransition",Integer.TYPE,Integer.TYPE);
method.invok(yourActivity,R.anim.zoom_in,R.anim.zoom_out);
}catch(NoSuchMethodException e){
//For android<2.0
//complete by other ways.
// you code...
}catch(OtherException ex){
throw(ex);
}
但由此又会增加兼容性问题,举个例子,在android2.0以后,在activity里可以直接调用
overridePendingTransition(int,int)来实现activity跳转动画。但在2.0之前的api里根本没有这个方法。
所以你的程序在android2.0以下根本无法运行,这时考虑到兼容性问题,你很可能会选择放弃对该新方法的使用。
但有没有即简洁,有能保证兼容的方式呢?答案是肯定的,可以用反射来调用,代码如下:
try{
//For Android>2.0
Method methid=Activity.class.getMethod("overridePendingTransition",Integer.TYPE,Integer.TYPE);
method.invok(yourActivity,R.anim.zoom_in,R.anim.zoom_out);
}catch(NoSuchMethodException e){
//For android<2.0
//complete by other ways.
// you code...
}catch(OtherException ex){
throw(ex);
}
抛砖引玉,对于新的类,同样可以通过反射做某些处理。这里不再一一列举,读者可自行思考,得到自己的解决方案。
很久没有更新博客了,感觉这个问题三言两语可以说清楚,便写下,希望对某些朋友有所帮助。
- android利用反射来解决版本兼容问题。
- 利用反射解决版本兼容问题[讨论]
- 利用CodeDom来解决反射性能问题
- 解决IE版本兼容问题
- Android中版本兼容问题
- Android中版本兼容问题
- android版本兼容问题
- Android中版本兼容问题
- Android版本兼容问题
- Android 版本兼容问题集锦
- 利用 LeakCanary 来检查 Android 内存泄漏 6.0以上版本空指针解决
- 如何解决IE版本兼容问题
- 如何解决IE版本兼容问题
- 解决qcow2高版本兼容问题
- 解决Android Studio版本兼容问题(低版本的AS打不开高版本的项目)
- 通过判断ie的版本动态的加载js等其他文件,来解决不兼容问题
- 【Android】导入低版本 project到高版本sdk后,遇到的兼容问题的解决
- Android 版本兼容问题(一)
- jQuery 参考手册2
- asp.net中使用对话框提交时页面出现白屏
- install ubuntu tweak in ubuntu11.04
- 思科交换机配置telnet
- 用JQuery在客户端调用C#后台函数
- android利用反射来解决版本兼容问题。
- 使用射线矢量对三角形图元求交 D3DXIntersect()函数说明
- IT人士必去的10个网站
- zookeeper LeaderElection(leader 选举)
- java怎样把数据导入到Excel中去
- jQuery 验证方法
- No 92 · android 调用.net webservice
- SharedPreferences轻量级数据存储
- Shell脚本调试技术