diff --git a/android/src/main/kotlin/im/nfc/flutter_nfc_kit/FlutterNfcKitPlugin.kt b/android/src/main/kotlin/im/nfc/flutter_nfc_kit/FlutterNfcKitPlugin.kt index 2ed8160..49095c3 100644 --- a/android/src/main/kotlin/im/nfc/flutter_nfc_kit/FlutterNfcKitPlugin.kt +++ b/android/src/main/kotlin/im/nfc/flutter_nfc_kit/FlutterNfcKitPlugin.kt @@ -89,7 +89,13 @@ class FlutterNfcKitPlugin : FlutterPlugin, MethodCallHandler, ActivityAware { } } } - if (!nfcHandler.post(handledFn)) { + val looperThread = nfcHandler.looper?.thread + if (looperThread == null || !looperThread.isAlive) { + val thread = HandlerThread("FlutterNfcKit").apply { start() } + nfcHandler = Handler(thread.looper) + } + val posted = nfcHandler.post(handledFn) + if (!posted) { result.error("500", "Failed to post job to NFC Handler thread.", null) } }