The invention provides a Android based Handler anti leak memory device, it includes: asynchronous Runnable request receiving module, for receiving the asynchronous task Runnable request; synchronization module, for the weak reference method all received asynchronous task synchronization saved Runnable request; asynchronous request execution module to perform asynchronous tasks Runnable requests. To determine whether a message to be sent; sub thread end line module, not for the message to be sent when the end line thread; message sending module, used in the message to send, send messages and messages between weak references and asynchronous threads; message distribution module, used to store a reference message and message and weak the asynchronous thread, and according to the time the message is sent to the order of the main thread. The invention introduces a weak reference relation, which ensures that the resource can be recovered by the garbage collector smoothly, and the problem of memory leakage can not be guaranteed under the premise of the normal communication between the sub thread and the main thread.
【技术实现步骤摘要】
本专利技术属于Android系统安全领域,具体涉及一种基于Android的Handler防内存泄漏装置及方法。
技术介绍
在Android软件开发中或多或少会使用到多线程技术,在使用多线程技术的时候就有一个问题点的引出,那就是子线程和主线程是如何进行通信的。Android给我们提供了一个比较好用的工具Handler,通过Handler这个工具在子线程中发送消息给主线程,主线程接收到子线程的消息后,根据消息的不同类型会做不同的操作。也就是说Handler主要是通过消息机制来使得主线程和子线程进行通信。Handler这种消息机制确实解决了子线程和主线程通信的问题,但是却又一个潜在的风险,使用上稍不注意就有可能会造成内存泄漏的风险。内存泄漏会给系统带来什么问题呢。手机上内存本身是属于比较紧张的资源,内存资源是有限的,内存泄漏指的就是那些曾经使用过,现在已经没有用了的资源,并没有及时释放掉该部分内存,且该部分资源一直在内存中存在,这块区域既不能使用也不会被释放。由于这块内存一直被占用且不能被及时释放掉,所以导致其他情况下需要再次申请内存的时候却申请不到足够的内存空间就会出现系统卡顿,严重时候可能会出现应用崩溃等后果。由此可见内存泄漏给我们带来了非常不好结果。
技术实现思路
本专利技术要解决的技术问题是:提供一种基于Android的Handler防内存泄漏装置及方法,在子线程和主线程正常通信的前提下避免内存的泄漏。本专利技术为解决上述技术问题所采取的技术方案为:一种基于Android的Handler防内存泄漏装置,其特征在于:它包括:异步Runnable请求接收模块, ...
【技术保护点】
一种基于Android的Handler防内存泄漏装置,其特征在于:它包括:异步Runnable请求接收模块,用于接收异步任务的Runnable请求;同步模块,用于采用弱引用方法同步保存所有接收到的异步任务的Runnable请求;异步请求执行模块,用于执行异步任务的Runnable请求,判断是否有消息要发送;子线线程执行结束模块,用于在没有消息要发送时,结束子线线程;消息发送模块,用于在有消息要发送时,发送消息及消息与异步线程的弱引用关系;消息分发模块,用于存储消息及消息与异步线程的弱引用关系,并按照消息的时间顺序发送给主线程处理。
【技术特征摘要】
1.一种基于Android的Handler防内存泄漏装置,其特征在于:它包括:异步Runnable请求接收模块,用于接收异步任务的Runnable请求;同步模块,用于采用弱引用方法同步保存所有接收到的异步任务的Runnable请求;异步请求执行模块,用于执行异步任务的Runnable请求,判断是否有消息要发送;子线线程执行结束模块,用于在没有消息要发送时,结束子线线程;消息发送模块,用于在有消息要发送时,发送消息及消息与异步线程的弱引用关系;消息分发模块,用于存储消息及消息与异步线程的弱引用关系,并按照消息的时间顺序发送给主线程处理。2.根据权利要求1所述的一种基于Android的Handler防内存泄漏装置,其特征在于:所述的同步模块中包含双向链表,用于存储所述的异步任务的Runnable请求。3.根据权利要求1或2所述的一种基于Android的Handler防内存泄漏装置,其特征在于:所述的同步模块中还存储有线程的优先级,用于按照优先级移出异步任务的Runnable请求。4.根据权利要求1或2所述的一种基于Android的Handler防内存泄漏装置,其特征在于:所述的同步模块中包括有锁模块,用于实现同步保存;锁模块包括:锁获取模块,用于在接收到新的异步任务的Runnable请求时,获取锁的所有权;操作模块,用于在获取到锁的所有权时对所述的新的异步任务的Runnable请求进行存储或移出操作;锁释放模块,用于在存储或移出操作完成时,释放锁的所有权。5.根据权利要求1所述的一种基于Android的Handler防内存泄漏装置,其特征在于:所述的消息包括及时消息和延时消息;所述的消息分发模块中设有消息队列和定时器;所述的定时器用于定时,当定时器...
【专利技术属性】
技术研发人员:张磊,
申请(专利权)人:武汉斗鱼网络科技有限公司,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。