我有一个应用程序,它对不同的操作(主要是异步操作)显示不同DialogFragments
的响应。我正在使用最新版本的支持库(通过 SDK 管理器不断更新它)
所有动作都抛出Intent
回调
意图在 中处理BroadcastReceiver
,即在onPostResume
回调中注册(并且在 中取消注册onPause
)。
捕获意图后立即显示对话框:
if(Constants.SHOW_DIALOG_INTENT.equals(intent.getAction()) {
showDialog();
}
对话框通过show(FragmentManager, String)方法显示
所以问题是:为什么我IllegalStateException
从一些用户那里得到(应用程序被 10k+ 用户使用,但到目前为止只捕获了 10-15 个异常)。我不知道什么会导致这种情况,除了某种竞争条件(在实际调用和实际调用Activity
之间下降)showDialog()
DialogFragment.show()
我能做些什么来避免这种情况(我知道,0.1% 的错误是可以接受的,但我只是想找出问题所在)?