StrictMode作用:

是用来检测程序中违例情况的开发者工具。
小白主要用于监测内存泄漏

检查策略

两种:线程策略【ThreadPolicy】虚拟策略【VmPolicy】
代码如下:

代码位置

严格模式的开启可以放在Application或者Activity以及其他组件的onCreate方法

    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()                        .detectCustomSlowCalls() //API等级11,使用StrictMode.noteSlowCode 自定义的耗时调用                        .detectDiskReads() //磁盘读取操作                        .detectDiskWrites() //磁盘写入操作                        .detectNetwork()  //网络操作                        //  .penaltyDialog() //弹出违规提示对话框                        .detectAll()                        .penaltyLog() //在Logcat 中打印违规异常信息                        .build());                StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()                        .detectAll()                        .detectActivityLeaks()  //Activity泄露                        .detectLeakedSqlLiteObjects()  //泄露的Sqlite对象                        .setClassInstanceLimit(this.getClass(), 1) //检测实例数量                        .penaltyLog()                        .build());

解决问题记录:
1:实例对象重复问题
2:UI线程有耗时操作检测
3 在base中使用Toast一定要使用getApplication

    //错误写法    @Override    public void showToast(String message) {        Toast.makeText(this, message, Toast.LENGTH_SHORT).show();    }    //正确写法    @Override    public void showToast(@StringRes int resId) {        Toast.makeText(getApplicationContext(), resId, Toast.LENGTH_SHORT).show();    }

4:读取SharedPreferences中文件,也要使用全局applicationContext为参数
5:异步操作一定要使用弱引用,防止内存泄漏
6 application注意只能实例一次,即系统系统就会自动创建,最好不要在new
7 在读取系统服务(Service)创建一次就行。
8 List对象和handler对象在当前活动activity最好结束时最好销毁。

更多相关文章

  1. Android中关于sdcard的操作
  2. Android(安卓)SurfaceTexture解读
  3. android RefBase
  4. Android——使用网络技术之使用OkHttp
  5. JSONObject与JSONArray的使用 jsonobject里面包含jsonarray
  6. SharedPreferences保存对象
  7. Android(安卓)Service用法讲解与实例
  8. Android之LayoutInflater
  9. Android中使用PULL方式解析XML和XmlSerializer进行序列化

随机推荐

  1. Android(安卓)学习 之 Intent 调用大全
  2. debug.keystore文件不存在解决办法
  3. android studio 3.3.2 NDK编译C++(C) JNI
  4. Android(安卓)7.1 从底层到上层分析 Led
  5. JPush 推送消息给 Android
  6. 初识android自定义UI
  7. android之通知的使用
  8. Android底部菜单栏(RadioGroup+Fragment)美
  9. Android(安卓)Studio TCP IP 服务器和客
  10. Android关于buildToolVersion与CompileSd