Android踩坑日记

1. 在使用Toast时,无法自定义Toast显示时间

Toast.makeText(Context,  Message, [Toast.LENGTH_LONG|Toast.LENGTH_SHORT]).show();

  Toast.LENGTH_LONG/Toast.LENGTH_SHORT在源码中的值为1和0,所以makeText方法的第三个参数不能设置为自定义的时间毫秒数。
Toast的setDuration方法只能传Toast.LENGTH_LONG或Toast.LENGTH_SHORT,其他值无意义或者不生效

2. Fragment快速频繁切换时生命周期

  • onHiddenChange有可能不执行;
  • onStart和onStop可能不执行,只执行onResume和onPause;
  • onDestory方法不会立即执行,切换到最终页面后可能需要等待一段时间才会执行onDestory,或者有可能始终不执行onDestory

3. try-catch-finally模块

try{
    //TODO
    return new Object();
} catch(IOException e) {
    //TODO
    return 1==2;
} catch(ProtocolException pe) {
    //TODO
    return false;
}  finally {
    //TODO
}
  • 无论有没有catch异常,finally都会执行;
  • 有return也会执行finally;
  • 没有catch到异常时,finally中的代码会在new Object()后,在return之前执行;
  • catch到异常1时,finally中的代码会在执行1==2保存false的值之后,在return false之前执行;
  • catch到异常2时,finally中的代码会在return false之前执行.

4. 类型转换

  • Integer.valueOf会创建Integer对象
  • Integer.parseInt只做转换为int操作

5. 静态static

  • 静态块static { … }在类加载后立刻执行
  • 静态方法在调用时执行

6. switch…case..问题

  • case后的值必须是final类型,不可改变,否则报错

7. fresco使用

  fresco的图片需要指定大小,否则会出现加载图片后不显示的问题

8. handler的postDelay操作

  所有的postDelay操作都要有对应的remove,否则很容易造成内存泄露或者逻辑出错

9. 华为前置摄像头奔溃问题

  一般为Camera.Parameter设置错误,部分华为手机表现在focusMode参数设置,华为手机前置摄像头仅支持一种focusMode,所以需要先获取设备所支持的focusMode参数列表再进行设置。

10. 魅族手机调用系统api拍照

  部分魅族手机调用系统api拍照,传值到系统相机的照片路径必须是静态字符串

11. 高德地图sdk

  高德地图sdk定位获取的地址数据包含“省”“市”“区”三级;通过高德地图sdk提供的api查到的行政区的“省”“市”“区”三级中“市”与定位获取到的“市”不一致,例如:定位获取到为:北京市 北京市 朝阳区,而行政区api则是:北京市 北京市市辖区 
  朝阳区,导致通过无法通过定位数据准确查询行政区;行政区查询发现,港澳台及少数地域的行政区级别有差别,港澳只有“省”“区”两级,台只有“省”一级,新疆省铁门关市部分只有“省”“市”两级

12. 权限问题

  targetSdkVersion 为23及以上需要在使用某些权限时做申请

13. 摄像头相关

Camera mCamera = Camera.open();
//创建size的正确方式
Camera.Size size = mCamera.new Size(600, 800);    

14.魅族手机rom的锅

部分魅族手机对弱引用内存回收的很迅速,出现的问题就是弱引用的变量数据丢失。
例:在使用高德定位时,创建了一个定位监听器的接口,弱引用。在定位成功后发现位置未刷新,后经证实为弱引用的位置监听接口在定位数据返回前被回收。
魅族手机rom定制了TextView的ellipsize属性为end时只显示两个点,例:

1234567899 在maxLength为5的TextView中在魅族会显示为12345..
1234567899 在maxLength为5的TextView中在其他手机显示为12345...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值