AndroidについているNFCリーダーを使用してFeliCaを読み取るアプリを作成しています。
その際に、FeliCaから取得した情報を内部関数で処理するように作成したところ、
アプリ画面のオブジェクトの状態を変更すると途中で処理が止まってしまう減少に遭遇しています。
一部コードを抜粋いたします
kotlin
1class TestActivity : AppCompatActivity() { 2 3 private var mAdapter: NfcAdapter? = null 4 5 override fun onCreate(savedInstanceState: Bundle?) { 6 super.onCreate(savedInstanceState) 7 setContentView(R.layout.testactivity) 8 mAdapter?.enableReaderMode(this, MyReaderCallback(), FLAG_READER_NFC_F,null) 9 } 10 11 inner class MyReaderCallback : NfcAdapter.ReaderCallback { 12 override fun onTagDiscovered(tag: Tag) { 13 println("phase1") 14 button1.isEnabled = true 15 println("phase2") 16 } 17 } 18} 19
上記のコードの時button1のEnableがtrue状態でMyReaderCallbackの処理を実行すると"phase1""Phase2"共に実行されるのに対して、button1のEnabledがfalse状態でMtReaderCallbackの処理を実行すると"phase1"しか実行されません。
もちろん、TestActivity内で関数を作成して処理すればbutton1のEnableに関わらず最後まで実行されます。
inner関数の内部でオブジェクトの状態を変更すること自体が問題なのでしょうか?
お力添えをお願いします。
回答2件
あなたの回答
tips
プレビュー