1

正如标题所说,我的活动测试用例崩溃了

Test run failed: Instrumentation run failed due to 'android.view.WindowManager$BadTokenException'

当我的活动中重新生成对话框时。所有测试在我的 Sky A820L 上运行良好,但在三星 Galaxy S3 上测试时都开始出错。我四处搜索,看到有人建议使用处理程序来处理对话框,但我无法更改应用程序的源代码。那么有没有办法解决这个问题呢?

先谢谢了!

编辑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  );
 }

如您所见,每次活动启动时,它都会创建一个新对话框,并且其中有调用对话框的方法,因为它必须再次请求数据。有时它运行良好而没有任何问题,但大多数时候它会触发错误。

4

0 回答 0