正如标题所说,我的活动测试案例崩溃了
Test run failed: Instrumentation run failed due to 'android.view.WindowManager$BadTokenException'
当我的Activity中有重新生成的对话框时。所有测试都在我的Sky A820L上正常运行,但是当我在三星Galaxy S3上测试时,一切都开始出错了。我google了一下,看到有人建议使用处理程序来处理对话框,但我无法更改应用程序的源代码。那么有什么方法可以解决这个问题吗?
先谢谢!
编辑1: 代码使用对话框有几个地方(因为这个应用程序从服务器加载其数据,因此无论何时加载,它都会弹出一个进度对话框来等待数据)。因此,每次活动开始测试时,它都会连续启动和停止(对于每个测试用例,活动将再次启动)。我看到问题发布在这里: https://code.google.com/p/android/issues/detail?id=14616 但没有解决方案。 应用程序代码在这里:
protected void onCreate( Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
this.dialog = new ProgressDialog( this );
this.dialog.setMessage( "Sending data, please wait..." );
//something else
}
protected void onRequestData()
{
this.dialog = ProgressDialog.show( this, "", "Loading, please wait...", true, true );
}
正如您所看到的,每次活动开始时,它都会创建一个新的对话框,并且该对话框内部有一些方法,因为它必须再次请求数据。有时它运行正常没有任何问题,但大多数时候它会触发错误。