Tag: dialogfragment

显示DialogFragment抛出“无法执行此操作后onSaveInstanceState”错误

问题 嗨,我正在为Titanium创建一个Android和iOS模块,它有一个sendLog方法,它将一些任意的JSON数据发送到一个服务器,并返回一个URL,如果它匹配一些预定义的过滤器。 该网址应该以带有webview的模式对话框打开。 我编写了原生的iOS和Android库,并将它们包装为Titanium模块。 在iOS上,一切正常,但在Android上,我无法打开对话框(请参阅下面的错误堆栈跟踪)。 现在有一个日志消息总是触发相同的网页进行测试。 在Android上它只是默默地失败。 测试用例 var mupets = require("be.iminds.mupets"); mupets.initialize("wappr", "http://tocker.iminds.be:3000/log/report.json", 1, 100, 3); var esmLog = { bar: "foo" }; mupets.sendLog("es-test-01",JSON.stringify(esmLog)); 在这段代码之后(大约10秒钟之后),模块应该在下面的网页中显示一个本地对话框: http : //tocker.iminds.be : 3000/es/sheets/test-01/index.html 相反,这是我始终如一的错误: 日志 java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1411) at android.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1429) at android.app.BackStackRecord.commitInternal(BackStackRecord.java:687) at android.app.BackStackRecord.commit(BackStackRecord.java:663) at android.app.DialogFragment.show(DialogFragment.java:256) at be.iminds.mupets_client_android.logging.plugins.OutHttp.getEsm(OutHttp.java:122) at be.iminds.mupets_client_android.logging.plugins.OutHttp$1.success(OutHttp.java:78) […]