标题非常明显.我理解这个开发人员选项的作用.
我不明白的是以下几点:
我很想知道这个选项背后的原因.
我正在尝试编写一个Android活动检测测试,停止(onPause()然后onStop())并重新启动当前活动.我试过了
activity.finish();
activity = getActivity();
Run Code Online (Sandbox Code Playgroud)
......但这似乎不能正常工作.
测试的目标是声明表单数据在onPause()方法期间存储并在方法期间重新读取onStart().它在手动执行时有效,但测试失败,我从中得出结论activity.finish()似乎是停止和重新启动活动的错误方法.
编辑:我的主要问题似乎是同步问题.重新启动活动后,测试运行器不会等待所有事件处理程序完成.以下行将暂停测试执行,直到活动空闲为止:
getInstrumentation().waitForIdleSync()
Run Code Online (Sandbox Code Playgroud)
除此之外,请查看已接受的答案,以获取有关生命周期的更多有价值信息.
我正在使用IsoDep Tag Tech处理应用程序,以向启用NFC的卡发出APDU命令.
更新:所以下面看到的问题似乎与我正在使用的卡的电源要求有关,当我使用具有较低功率要求的不同卡时,下面的症状不会经常发生.
我明确地遵循了文档,并成功地实现了协议.然而,由于混合成功,我遇到了一些超出我的代码控制范围的NFC低级库的问题.
我已经实现了以下内容:
问题是我注意到了一些事情:
在Nexus S上,卡的位置取决于成功的通信流程,如果它不在最佳位置,我将收到IOException如果由于卡已移动或未保留在RF字段中而得到太多IOExceptions,我开始看到以下的消息(见下文)我想知道是否有其他人看到过这些问题?在我的onResume方法中,我没有任何逻辑来阻止多次调用方法的NFCAdapter实例:enableForegroundDispatch,我应该这样做.
在此先感谢您的帮助.
06-16 12:08:43.351: ERROR/NFC(661): NFC service dead - attempting to recover
06-16 12:08:43.351: ERROR/NFC(661): android.os.DeadObjectException
06-16 12:08:43.351: ERROR/NFC(661): at android.os.BinderProxy.transact(Native Method)
06-16 12:08:43.351: ERROR/NFC(661): at android.nfc.INfcAdapter$Stub$Proxy.enableForegroundDispatch(INfcAdapter.java:528)
06-16 12:08:43.351: ERROR/NFC(661): at android.nfc.NfcAdapter.enableForegroundDispatch(NfcAdapter.java:494)
06-16 12:08:43.351: ERROR/NFC(661): at myClass.onResume(MyClass.java:406)
06-16 12:08:43.351: ERROR/NFC(661): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
06-16 12:08:43.351: ERROR/NFC(661): at android.app.Activity.performResume(Activity.java:3832)
06-16 12:08:43.351: ERROR/NFC(661): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2110)
06-16 12:08:43.351: ERROR/NFC(661): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2135)
06-16 12:08:43.351: ERROR/NFC(661): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1668)
06-16 …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,可将数据读取并写入NFC标签(类型2)。有时在读取标签时,我在LogCat中收到以下错误。
03-13 12:26:12.946: E/NFC(18889): NFC service dead - attempting to recover
03-13 12:26:12.946: E/NFC(18889): android.os.DeadObjectException
03-13 12:26:12.946: E/NFC(18889): at android.os.BinderProxy.transact(Native Method)
03-13 12:26:12.946: E/NFC(18889): at android.nfc.INfcAdapter$Stub$Proxy.setForegroundDispatch(INfcAdapter.java:350)
03-13 12:26:12.946: E/NFC(18889): at android.nfc.NfcAdapter.disableForegroundDispatchInternal(NfcAdapter.java:1062)
03-13 12:26:12.946: E/NFC(18889): at android.nfc.NfcAdapter.disableForegroundDispatch(NfcAdapter.java:1050)
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会这样。有没有什么办法解决这一问题。
谢谢。