zoukankan      html  css  js  c++  java
  • Android 中后台操作

    UI线程处理耗时操作会导致ANR,UI线程阻塞

    访问磁盘、图片解码、网络请求,,,在工作线程中做,,,单独的后台进程?

    后台处理机制:Services,线程、线程池、WorkManager

    Service和线程的区别:

    线程是程序运行的最小单元,一个进程开启很多线程,,可以进行异步操作,在UI主线程开启一个工作线程,不会影响UI主线程

    service是android的运行机制,无特殊处理运行在主线程上,

    如果是远程的Service,会运行在独立进程的MainThread上

    线程,运行独立,activity finish之后,如果没有主动的停止Thread run方法,线程会一直运行,导致内存泄漏

    线程开启子线程,耗时操作不会阻塞主线程的运行

    Services,播放音乐,,运行在主线程,,做耗时操作还是会导致ANR的产生,,后台操作,而非后台线程,不依赖于UI,

    Activity有UI界面,如果Activity销毁或者程序关闭,Activity界面不见了,Service只要进程还在,就可以继续运行,,心跳服务、网络连接等,用Service

    在service中创建一个子线程,做耗时操作,当activity被销毁之后,service还在,创建子线程还在运行,activity可以放心的销毁

    activity很难对子线程进行控制,当activity销毁之后,没有办法获得之前创建的子线程的实例

    线程池、

    Services:保活、长期在系统运行、比如地图定位、音乐等,主界面不在了还在运行

    WorkManager:上传日志到服务器,推迟工作的,,延时或者在预定的时间内完成,,,响应系统的某些机制(网络状态、电池状态、开关机等),

    立刻完成

    线程池:立刻完成

  • 相关阅读:
    mvc view返回值
    ASP.NET MVC Core的ViewComponent【视图组件】
    原型模型
    RabbitMQ学习
    SVN知识点总结
    微信开发遇到的问题(单页应用静态资源缓存策略设置)
    arm nfs 启动
    gdb exe control
    gdb take care of c macros
    gdb --- Convenience Variables
  • 原文地址:https://www.cnblogs.com/anny0920/p/13023756.html
Copyright © 2011-2022 走看看