On my application I am using NFC to read the NFC card data, After reading CPU usage is getting increased every reading even i kill the activity where I am using NFC. This is happening only in debug mode of app. if I use release mode, there is no issue on app performance.
Is it normal behavior or not?
I am already doing disconnectReader()
, disableNFCReaderMode()
and unRegister()
nfc after usage. Here is the functions.
override fun disconnectReader(): Boolean {
"disconnectReader()".toLog(TAG)
try {
tagEventListener?.isoDep?.close()
nfcManager.disableNFCReaderMode()
tagEventListener?.isoDep = null
setCardTappedStatus()
return true
} catch (ignored: IOException) {
"disconnectReader() -> IOException ${ignored.message}".toLog(TAG)
return false
} catch (ignored: NullPointerException) {
"disconnectReader() -> NullPointerException ${ignored.message}".toLog(TAG)
return true
}
}
fun disableNFCReaderMode() {
"disableNFCReaderMode(${mActivity.isFinishing})".toLog("NFCManager")
if (!mActivity.isFinishing) {
nfcAdapter?.disableReaderMode(mActivity)
"disableForegroundDispatch(): ${mActivity.javaClass.name}".toLog("NFCManager")
nfcAdapter?.disableForegroundDispatch(mActivity);
}
}
fun unRegister() {
"unRegister()".toLog(TAG)
nfcStatusLiveData.removeObservers(activity)
appSettingLauncher?.unregister()
}