sdk兼容性总结---随时更新补充
来源:互联网 发布:淘宝买家级别怎么分 编辑:程序博客网 时间:2024/05/17 04:11
1、FragmentActivity和Activity
引用:
FragmentActivity和Activity的区别 - - 博客频道 - CSDN.NET
http://blog.csdn.net/shineflowers/article/details/50561176
Fragment是Android 3.0以后的东西,为了在低版本中使用Fragment就要用到android-support-v4.jar兼容包,而FragmentActivity就是这个兼容包里面的,它提供了操作Fragment的一些方法,其功能跟3.0及以后的版本的Activity的功能一样。
下面是API中的原话:
FragmentActivity is a special activity provided in the Support Library to handle fragments on system versions older than API level 11. If the lowest system version you support is API level 11 or higher, then you can use a regular Activity.
主要区别如下:
1、FragmentActivity 继承自Activity,用来解决Android 3.0之前无法使用Fragment的问题,所以在使用的时候需要导入android-support-v4.jar兼容包,同时继承 FragmentActivity,这样在Activity中就能嵌入Fragment来实现你想要的布局效果。
2、当然Android 3.0之后你就可以直接继承自Activity,并且在其中嵌入使用Fragment。
3、获得FragmentManager的方式也不同
Android 3.0以下:getSupportFragmentManager()
Android 3.0以上:getFragmentManager()
2、onKeyDown和onBackPressed
引用:
Android中OnkeyDown事件和OnBackPressed方法区别、兼容、使用 - u010717419的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/u010717419/article/details/24481537
在Android平台上捕获Back键的事件,Back键是手机上的后退键,一般的软件不捕获相关信息可能导致你的程序被切换到后台,而回到桌面的尴尬情况,在android上有两种方法来获取该按钮的事件。 1.直接获取按钮按下事件,此方法兼容Android 1.0到Android 2.1 也是常规方法,直接重写Activity的onKeyDown方法即可,代码如下:@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //按下的如果是BACK,同时没有重复 Toast.makeText(ml78.this,"返回键Back键测试",1).show(); return true; } return super.onKeyDown(keyCode, event);}而对于Android 2.0开始又多出了一种新的方法,对于Activity 可以单独获取Back键的按下事件,直接重写onBackPressed方法即可,代码如下@Overridepublic void onBackPressed() {// 这里处理逻辑代码,大家注意:该方法仅适用于2.0或更新版的sdkreturn;}
3、关于获取wifi列表的权限判断
获取系统的wifi列表比较麻烦,不但涉及到你的sdk的targetVersion还和手机的系统版本有关系。
图示:
1、当targetVersion < 23的时候不需要任何权限就可以拿到系统的wifi列表
2、当targetVersion >= 23的时候需要做三个判断
1>android 6.0以上只需要定位权限
2>android 6.0需要定位权限和GPS权限(官方设计问题,在6.0.1得到修复)
3>android 6.0以下不需要任何权限
注意:
1、如果你是6.0以上的手机,如果targetVersion<23也需要相应的权限才可以获取系统的wifi列表
2、为什么获取系统的wifi列表需要定位权限呢?设计如此,原因未知。
3、在某些机型上,即使是6.0的手机不需要gps权限也能正常获取wifi列表,这是因为厂家的rom自己修复了谷歌官方6.0版本的问题。
下面是一张判断流程图(thks yj)
4、关于透明状态栏5.0以上和5.0以下的兼容
在 setContentView();前加入以下代码。
<color name="status_bar_color">#00000000</color>
int color = getResources().getColor(R.color.status_bar_color); if (color != Color.TRANSPARENT) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = this.getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.setStatusBarColor(color); } } else { getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } setContentView(R.layout.activity_share_manager);
- sdk兼容性总结---随时更新补充
- vim编程常用命令(随时补充更新)
- CPS推广实例(随时更新补充)
- 基础知识总结【随时总结更新】
- Oracle数据库中一些关键字的用法(随时更新补充)
- 论坛各种问题总结--(随时更新)
- 论坛各种问题总结--(随时更新)
- pixhawk资料总结(随时更新)
- 树莓派日常使用总结(随时更新)
- Python Numpy 线性代数操作总结(随时更新)
- while(随时补充)
- python随笔,随时补充.
- 杂七杂八,随时补充
- linux知识点随时补充
- 随时总结
- 关于C语言知识点总结(随时更新中)
- VC中指针使用总结----〉随时更新
- java面试准备---JSF系统学习知识点总结---随时更新
- 关于在jstl标签中forEach使用的一个坑
- (java)整数数组中求最大连续子序列之和,并且记录开始和结束位置
- 【解决】redis启动权限问题
- 操作给定的二叉树,将其变换为源二叉树的镜像。
- 最短路变形 nyoj1248、poj1797 dijkstra+堆优化
- sdk兼容性总结---随时更新补充
- ajaxfileupload.js+springMVC实现多个图片与数据同一个ajax方法上传
- 为啥显示器用RGB而打印机用CMYK
- 常见错误及解决方法及代码
- BootLoader启动过程分析
- 服务器定时任务的执行失败重新尝试5次
- PHP中对public,static,private,protected的理解
- 测试Linux设备MTU值得方法
- [python][project][爬虫] 堆糖网图片下载