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

那么,是否有任何等效代码等待带有此批注的ui?

最佳答案

以我的经验,限制您使用此批注是有好处的,我倾向于做的是在可运行的格式内运行需要与Ui线程进行交互的任何代码,即:

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


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

关于java - How to say在带有注释的UIThreadTest方法中说waitForIdleSync(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13306084/

10-08 20:36