Handler机制 主要涉及以下几个方面:
- Handler类:它是用于处理消息的对象,通常用来在不同的线程之间传递消息。
- Message类:这是消息对象,包含了有关消息的数据以及目标处理器的引用。
- MessageQueue类:这是一个存储消息的对象,按照一定的顺序排列。
- Looper类:它的内部是一个死循环,不断地从MessageQueue中取出消息并进行分发。
- HandlerThread类:它用于创建一个新的子线程,在这个子线程中使用Looper来处理消息,从而避免主线程(UI线程)因长时间执行耗时操作而导致卡顿或崩溃。
Handler机制的核心在于它如何在不同线程之间传递消息。当子线程完成耗时操作后,它会创建一个包含数据的新Message对象,然后将其发送到MessageQueue中。Looper会在自己的循环中不断检查MessageQueue是否有新的消息,一旦发现新消息,就会调用dispatchMessage方法来分发这些消息。最终,这些消息会被传递给注册了相应消息处理的Handler。
为了确保线程安全,Handler机制使用了目标(Target)的概念,即每个消息都绑定到一个特定的处理器。这样,即使系统中有很多Handler实例,它们也能正确地处理各自的目标消息。
需要注意的是,为了避免潜在的内存泄漏问题,开发者在使用Handler时应谨慎。例如,如果在某个Activity结束后还有未处理的消息,这可能导致Activity不被及时回收,从而引起内存泄露。为了避免这种问题,可以使用静态内部类或者弱引用来管理Handler的使用,并在不再需要时清除消息队列中的信息。
参考:https://blog.csdn.net/f641385712/article/details/89845181
SpringMVC不用注解的方式,用配置xml的方式
参考:https://blog.csdn.net/u011047968/article/details/103807065
implement Controller