美文网首页
StrickMode

StrickMode

作者: 朱_c713 | 来源:发表于2020-05-06 12:18 被阅读0次

    使用方法:

      private boolean DEV_MODE = BuildConfig.STRICT_MODE;
        @Override
        public void onCreate() {
            if (DEV_MODE) {
                StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                        .detectCustomSlowCalls() //API等级11,使用StrictMode.noteSlowCode
                        .detectDiskReads()
                        .detectDiskWrites()
                        .detectNetwork()   // or .detectAll() for all detectable problems
                        .penaltyDialog() //弹出违规提示对话框
                        .penaltyLog() //在Logcat 中打印违规异常信息
                        .penaltyFlashScreen() //API等级11
                        .build());
                StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                        .detectLeakedSqlLiteObjects()
                        .detectLeakedClosableObjects() //API等级11
                        .penaltyLog()
                        .penaltyDeath()
                        .build());
            }
            super.onCreate();
    
    

    如何解决检测出来的问题?
    针对此问题下面给出几点建议,仅供参考:

    1.如果是主线程中出现文件读写违例问题,建议使用工作线程(可采用HandlerThread,IntentService、线程池或直接new Thread,必要时可结合Handler)完成,但采用工作线程在某个Activity中操作时注意线程要能正常结束,否则将导致内存泄露,相关细节后文将有表述。

    2.如果是对SharedPrefrences写入操作,在API 9以上建议优先调用apply而非commit,此外需注意的是确保SharedPrefrences在单进程中使用,如果涉及跨进程数据交换,建议自己编写跨进程SharedPrefrences实现机制,否则可能导致数据不准确。

    3.如果存在未关闭的Closable对象,需根据对应的stacktrace进行关闭。

    4.如果SQLite对象泄露,根据对应的stacktrace进行释放。

    5.注意registerBroadcast和unregisterBroadcast配对使用,对文件操作完成后记得close操作。

    StrictMode policy violation; ~duration=423 ms: android.os.StrictModeStrictModeDiskReadViolation: policy=1245199 violation=2 at android.os.StrictModeAndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1293)

    参考文档:
    https://www.cnblogs.com/yaowen/p/6024690.html

    https://blog.csdn.net/lyb2518/article/details/75026895

    相关文章

      网友评论

          本文标题:StrickMode

          本文链接:https://www.haomeiwen.com/subject/yypightx.html