Android 等待UI线程完成
我正在运行一个仪器活动测试 因为我需要在活动的一个UI元素中执行一些UI操作 我在活动的UI线程中这样做:Android 等待UI线程完成,android,multithreading,android-testing,Android,Multithreading,Android Testing,我正在运行一个仪器活动测试 因为我需要在活动的一个UI元素中执行一些UI操作 我在活动的UI线程中这样做: settingsActivity.runOnUiThread(new Runnable() { @Override public void run() { testSwitch.performClick(); } }); 每次被击中时,无论何时调用执行单击,在onSaveInstanceState之后都无法执行此操作 我做了几件事: 我试过在代码
settingsActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
testSwitch.performClick();
}
});
每次被击中时,无论何时调用执行单击,在onSaveInstanceState之后都无法执行此操作
我做了几件事:
- 我试过在代码之后放置
Thread.sleep()
,但它不起作用
- 我还没有完成拆卸中的活动。所以,我不知道
活动是如何被破坏的
干杯,
索拉夫只要做一件事
没有对super()的调用。
我认为它的Bug在API级别>11
@Override
protected void onSaveInstanceState(Bundle outState) {
//No call for super(). Bug on API Level > 11.
}
或
如果需要保存实例并向outState Bundle添加内容,可以使用以下方法:
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putString("WORKAROUND_FOR_BUG_19917_KEY", "WORKAROUND_FOR_BUG_19917_VALUE");
super.onSaveInstanceState(outState);
}
希望它能解决你的问题。祝您好运:)正如错误所说,您正在尝试通过执行按钮单击与UI元素交互,但您的活动可能已暂停。感谢smitalm的响应……但我如何知道活动已暂停?请记录一些日志以了解发生了什么。例如,记录您的所有活动生命周期(onCreate、onResume、onStart、onPause、onStop、onDestroy…),我检查了在ui元素单击之前调用活动的停止。我还没有完成这项活动。ACITivityIntrumentationTest是否在一段时间后完成上述活动?