Handler与Looper
Handler是Android提供的一种机制,用于在不同的线程之间发送和处理消息。每个Handler对象都关联一个特定的Looper和一个消息队列,通过Handler,可以将消息发送到消息队列,并在关联的Looper执行消息时进行处理。
Looper是一个用于管理线程消息循环的类,每个线程只能有一个Looper,负责维护线程的消息队列并按顺序处理消息。通过Looper.prepare和Looper.loop,可以在线程中准备Looper并启动消息循环。
Handler通过`obtainMessage`方法,获取一个Message对象。
Message用于发送和处理消息,封装线程之间的传递的信息和指令。
通过handler.sendMessage(message)来发送消息。sendMessage()方法可以将消息发送到Handler关联的消息队列中,以便在Handler所在的线程中被处理。处理消息时,调用handleMessage()方法进行消息处理。
ActivityManager
ActivityManager是Android系统中的一个重要类,提供了应用程序和活动的管理,`android.app.ActivityManager`。
ActivityManager的主要职责包括:
1. 管理应用程序的生命周期:ActivityManager 负责跟踪应用程序的状态和生命周期。它可以启动、停止、销毁应用程序的组件,如活动、服务和广播接收器。
2. 管理活动(Activity):ActivityManager 可以启动、停止、重启、销毁和管理活动的任务栈。它可以管理活动的堆栈顺序,切换活动之间的转换,并处理活动之间的通信和交互。
3. 启动应用程序和服务:ActivityManager 可以启动应用程序的活动和服务组件。它允许应用程序之间相互启动活动,并启动和管理后台服务。
4. 获取设备信息:ActivityManager 可以提供关于设备的信息,如可用内存、运行中的进程和服务等。这些信息可以用于优化应用程序的性能和资源管理。
5. 监控应用程序的使用情况:ActivityManager 可以监视应用程序的使用情况和状态。它可以提供有关正在运行的应用程序、内存使用情况、电池状态等信息。
FutureTask
FutureTask是Java中`java.util.concurrent`包提供的一个类,实现Future接口和Runnable接口,用于表示一个可获取结果的异步任务。
主要支持:
- 异步执行任务:可在单独线程中执行,不会阻塞当前线程;
- 获取任务结果:任务可以有返回值(Callable<Inteeger>),通过调用get()方法获取任务的执行结果;
- 取消任务:支持任务的取消,通过cancel方法可以请求取消任务执行;
- 状态查询:通过isDone()判断是否完成;isCancelled()判断任务是否已取消。