0

在我的测试项目中,所有方法都没有注释UiThreadTest,优点是我可以执行点击和其他任何操作,然后等待getInstrumentation().waitForIdleSync();UI。但缺点是我的ui中的一个按钮打开了一个对话框,它getActivity()在他的构造函数中调用 - 这个方法返回null,因为我的测试方法没有注释UIThreadTest,当我添加它时,对话框打开,但我不能使用waitForIdleSync

那么是否有任何等效的代码来等待带有此注释的 ui

4

1 回答 1

4

根据我的经验,最好限制您使用此注释,我倾向于运行任何需要在可运行文件中与 Ui 线程交互的代码,格式如下:

getInstrumentation().runOnMainSync(new Runnable() {
    @Override
    public void run() {
        //code that needs to run on UI thread
    }
}); 

然后,您可以在执行任何操作之前和之后使用 waitForIdleSync。

于 2012-11-09T14:02:05.780 回答