zoukankan      html  css  js  c++  java
  • StrictMode 严格模式

    StrictMode:

    帮助程序员避免在主线程上执行耗时操作;

    启动级别:

    1. 启动线程级别:   setThreadPolicy()

    2. 启动应用级别 :  setVmPolicy() —— 对于检测应用内部的资源泄漏很有用

     

    可检测线程的如下操作:

    1. 磁盘的读和写操作;

    2. 访问网络;

    3. 运行速度较慢的代码;

    可检测整个应用的如下操作:

    1. 有界面(Activities)对象泄漏;

    2. 有SQLite对象泄漏;

    3. 有任何需要显示关闭的对象泄漏,即实现了Closeable接口的对象,在finalizer被调用前,没有调用close函数;

    应用违反了这些规则,将受到以下惩罚:

    1. 在logcat中打印详细的消息通知;

    2. 直接让应用崩溃退出;

    3. 不停的闪烁屏幕吸引注意;

    4. 在应用上弹出一个对话框提醒开发者;

    举例:

    在主线程中执行下面的操作是不允许的:

    1. 使用new Socket()视图打开一个套接字链接;

    2. 使用HttpClient和HttpUrlConnection发送一个Http请求;

    3. 尝试连接一个远程的MySQL数据库;

    4. 使用Downloader.downloadFile下载一个文件。

    Anroid提供了几种方法让其他线程操作UI控件:

    1. Activity.runOnUiThread(Runnable);

    2. View.post(Runnable); ===> AsyncTask

    3. Handler

  • 相关阅读:
    请假两时间的小时数差
    Python3之旅
    python语法总结1
    关于命令行的小结
    从Java到C#再到python
    数据库知识
    Visual Studio高低版本的问题(以2008和2015为例)
    web api
    readoney和const
    null
  • 原文地址:https://www.cnblogs.com/nicoleTeng/p/7410479.html
Copyright © 2011-2022 走看看