diff --git a/app/src/main/java/com/github/kr328/clash/LogViewerActivity.kt b/app/src/main/java/com/github/kr328/clash/LogViewerActivity.kt index 9e69d4b..8e85966 100644 --- a/app/src/main/java/com/github/kr328/clash/LogViewerActivity.kt +++ b/app/src/main/java/com/github/kr328/clash/LogViewerActivity.kt @@ -19,7 +19,6 @@ import java.io.File class LogViewerActivity : BaseActivity() { private val pauseMutex = Mutex() - private var pollingThread: Thread? = null private val connection = object : ServiceConnection { override fun onServiceDisconnected(name: ComponentName?) { finish() @@ -48,12 +47,6 @@ class LogViewerActivity : BaseActivity() { startFileMode(file.toFile()) } - override fun onDestroy() { - super.onDestroy() - - pollingThread?.interrupt() - } - override fun onStop() { super.onStop() @@ -78,6 +71,7 @@ class LogViewerActivity : BaseActivity() { mainList.itemAnimator?.removeDuration = 100 stop.setOnClickListener { + unbindService(connection) stopService(LogcatService::class.intent) finish() } diff --git a/service/src/main/java/com/github/kr328/clash/service/clash/ClashRuntime.kt b/service/src/main/java/com/github/kr328/clash/service/clash/ClashRuntime.kt index 0f7444c..10d5c7d 100644 --- a/service/src/main/java/com/github/kr328/clash/service/clash/ClashRuntime.kt +++ b/service/src/main/java/com/github/kr328/clash/service/clash/ClashRuntime.kt @@ -87,8 +87,14 @@ class ClashRuntime(private val context: Context) { } } } finally { - modules.reversed().forEach { - it.onStop() + runCatching { + modules.reversed().forEach { + it.onStop() + } + } + + runCatching { + context.unregisterReceiver(receiver) } Clash.stop()