线程交互的几种方式
- 线程启动, A 启动 B,
- 线程终结, 不要用 Stop , 用 Interrupt
- 线程的等待,唤醒,同步 - wait notify synchronized
- Handler HandlerThread Looper
- Asynctask 内存泄露 和 Thread 一样的原因
- Service - IntentService 不要当做线程使用
Android 几种线程交互
- Executors: 线程池, 四种, 使用最简单, 开启后台线程执行任务
- Handler && Asynctask: 需要把后台的任务, 推送到 UI 线程时, 使用
- Asynctask: Static + WeakReference 可以解决内存泄露, 但是内存泄露和内部类没关系, 是线程的关系, 线程持有 GCRoot 的引用
- HandlerThread: Looper.pared() && Looper.loop(), 几乎没有使用场景 ,
- 在 已经运行 的指定的线程上,执行代码
- Service: 后台任务的活动空间, 长时间活着, 其实还是在前台, 耗时操作, 需要自己开线程
- IntentService: Service 子类, onHandleIntent() 执行后台代码的位置, 代码自动执行, 完毕后 IntentService 自动关闭, 充当线程作用,
- eg: AlarmManage 定时拉取用户信息, 需要用到 Service 且 很简单的任务时使用
网友评论