Kotlin
private fun installShutdownHookForDebug() {
try {
Runtime.getRuntime().addShutdownHook(
Thread(
{
try {
val stacks = Thread.getAllStackTraces()
Log.e("ExitHook", "VM shutdown hook running, threads=${stacks.size}")
for ((thread, stack) in stacks) {
Log.e(
"ExitHook",
"thread='${thread.name}' state=${thread.state} daemon=${thread.isDaemon} id=${thread.id}\n" +
stack.joinToString(separator = "\n") { " at $it" }
)
}
} catch (t: Throwable) {
Log.e("ExitHook", "Failed dumping thread stacks", t)
}
},
"ExitHook",
),
)
Log.i("ExitHook", "Installed shutdown hook (debug only)")
} catch (t: Throwable) {
Log.w("ExitHook", "Failed to install shutdown hook", t)
}
}
在Application中的oncreate中调用就行
经过测试我看到了如下日志
Kotlin
2025-12-31 17:41:36.556 20049-20217 ExitHook com.omnicast.androidtv E thread='Thread-11' state=WAITING daemon=false id=739 (Explain with AI)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:422)
at java.lang.Thread.join(Thread.java:1262)
at java.lang.Thread.join(Thread.java:1338)
at java.lang.Runtime.exit(Runtime.java:160)
at java.lang.System.exit(System.java:1496)
at xxxx.run(Unknown Source:44)