使用Strict Mode API(Android2.3, API level 9中引入)时,可以分配一组监视应用程序内发生的动作的策略,并定义通知你的方式。可以定义与当前应用程序线程或是与应用程序虚拟机(virtual machine, VM)进程相关的策略,前者适用于检测在UI线程中执行的缓慢操作,而后者有助于检测内存和Context泄漏。
要使用Strict Mode,需创建一个新地ThreadPolicy类和一个新的VmPolicy类,这个过程需要用到它们的静态builder类,并使用detect*方法来定义要监视的操作,相应的penalty*方法控制着在检测到这些动作时系统如何应对。
线程策略可以用来检测磁盘读/写操作和网络访问,而Vm策略可以监视应用程序中的Activity、SQLite和可关闭对象的泄漏。两种策略都可以采取的处罚措施包括日志记录或终止应用程序,同时ThreadPolicy还支持在屏幕上显示对话框和或者使屏幕边界闪烁。两个builder类还包含一个detectAll方法,该方法包含平台支持的所有可能的监视选项。同样可以使用StrictMode.enableDefaults方法应用默认的监视和处罚选项。
示例: 在应用程序中使用Strict Mode
package com.test.androidtest; import android.app.Application; import android.os.StrictMode; public class MyApplication extends Application{ public static final boolean DEVELOPER_MODE = true; @Override public void onCreate() { super.onCreate(); if(DEVELOPER_MODE){ //在应用程序内启用Strict Mode //为一个特定的Activity、Service或其他应用程序组件使用Strict Mode(或定制其设置),只需要在 //组件的onCreate方法内采用相同的做法即可。 StrictMode.enableDefaults(); } } }