Android基础----2

interface和abstract区别:

  • 都不能实例化
  • interface里面的变量都用public static final修饰,方法都是public abstract方法
  • abstract里面变量和方法都可以用public、protect、private关键字修饰,还可以有具体的方法和构造器
  • 如果一个类(实现/继承)了(接口/抽象类),都要重写里面的全部抽象方法

进程间通信

  • ADIL:利用Service跨进程通信
  • Intent:访问其他应用的Activity
  • Content Provider:跨进程共享数据
  • Broadcast:被动接受广播

线程间通信

  • runOnUIThread(Runnable r):里面代码会回到UI线程执行,基于handler实现
  • handler:区别于runOnUIThread的是,handler更加基础,让你来自定义各种功能,延迟,标记,不太一定要用于工作线程通知UI线程,也可以UI线程通知工作线程(双向)。
  • AsyncTask:基于handler实现,已经帮我们封装好了功能实现,有着明确的目的:里面会开辟新线程执行耗时操作,耗时操作过程还可以把操作进度反馈给UI更新进度,最后把执行的结果返回UI线程。

四个线程池

  • 线程池出现原因:如果我们每次都用new Thread(new Runnable()).start来启动线程:每次都会新建对象占用内存,并且创建多次后让线程缺乏统一管理,也不能定义一些功能:周期,延迟,中断等
  • new CachedThreadPool:创建一个可缓存的无限大的线程池,把已经执行后的线程回收,不用每次使用都创建线程
  • new FixedThreadPool:创建一个自定义空间大小的线程池,可控制线程执行的最大并发数,超过并发数的线程在后面等待
  • new ScheduledThreadPool:创建一个自定义空间大小的线程池,封装好了定时及周期性的执行任务的功能
  • new SingleThreadPool:创建只有一个线程容量的线程池,只能用唯一的工作线程执行任务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值