Android 等待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之后都无法执行此操作 我做了几件事: 我试过在代码

我正在运行一个仪器活动测试

因为我需要在活动的一个UI元素中执行一些UI操作

我在活动的UI线程中这样做:

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是否在一段时间后完成上述活动?