美文网首页
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

    使用方法: 如何解决检测出来的问题?针对此问题下面给出几点建议,仅供参考: 1.如果是主线程中出现文件读写违例问题...

  • Android性能优化第(七)篇---StrickMode严苛模

    版权声明:本文为LooperJing原创文章,转载请注明出处! StrictMode意思为严格模式,是用来检测程序...

网友评论

      本文标题:StrickMode

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