我正在运行一个仪器活动测试.
在那里,我需要在Activity的一个UI元素中执行一些UI操作.
所以我在Activity的UI线程中这样做:
settingsActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
testSwitch.performClick();
}
});
每当我被命中时,无论何时调用执行点击,都无法在onSaveInstanceState之后执行此操作.
我做过的几件事:
>我尝试在代码之后放置Thread.sleep()但它不起作用.
>我没有完成拆除活动.所以,我不知道
活动如何被摧毁.
干杯,
Saurav
解决方法:
只做一件事
没有叫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);
}
希望它能解决你的问题.好运:)
标签:android,multithreading,android-testing
来源: https://codeday.me/bug/20190624/1281248.html