<lambda>null1package leakcanary 2 3 import android.os.Handler 4 import android.os.HandlerThread 5 import leakcanary.EventListener.Event 6 import leakcanary.EventListener.Event.HeapDump 7 import leakcanary.internal.AndroidDebugHeapAnalyzer 8 import leakcanary.internal.InternalLeakCanary 9 10 /** 11 * Starts heap analysis on a background [HandlerThread] when receiving a [HeapDump] event. 12 */ 13 object BackgroundThreadHeapAnalyzer : EventListener { 14 15 internal val heapAnalyzerThreadHandler by lazy { 16 val handlerThread = HandlerThread("HeapAnalyzer") 17 handlerThread.start() 18 Handler(handlerThread.looper) 19 } 20 21 override fun onEvent(event: Event) { 22 if (event is HeapDump) { 23 heapAnalyzerThreadHandler.post { 24 val doneEvent = AndroidDebugHeapAnalyzer.runAnalysisBlocking(event) { event -> 25 InternalLeakCanary.sendEvent(event) 26 } 27 InternalLeakCanary.sendEvent(doneEvent) 28 } 29 } 30 } 31 } 32