在我的测试项目中,所有方法都没有注释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/