等待UI线程完成

时间:2013-11-26 08:13:25

标签: android multithreading android-testing

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

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

所以我在Activity的UI线程中这样做:

settingsActivity.runOnUiThread(new Runnable() {
    @Override
    public void run() {
        testSwitch.performClick();
    }
});

每次调用执行点击时,我都会被can not perform this action after onSaveInstanceState命中。

我做过的几件事:

  • 我尝试将Thread.sleep()放在代码之后,但它无效。
  • 我没有完成拆除活动。所以,我不知道 活动如何被摧毁。

干杯, Saurav

1 个答案:

答案 0 :(得分:4)

只做一件事 没有叫super()。 我认为它在API级别上的Bug> 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);
}

希望它能解决您的问题。好运:):