在 Activity 单元测试中,我如何模拟 Activity 生命周期事件。
我可以在现有 Activity 上调用仪器的 callActivityOn... 方法,但是如何触发 Activity 重新创建,以便 Activity 的 OnCreate 获取具有已保存状态的包
最佳答案
我发现这段代码会导致创建新的 Activity:
myActivity.finish();
setActivity(null);
myActivity = getActivity();
但这不会导致 onSaveInstanceState 被调用。因此,例如测试是否在 View 方向更改后正确创建了 Activity ,这样的测试应该这样做:
private mInstrumentation = getInstrumentation();
...
final Bundle outState = new Bundle();
mInstrumentation.callActivityOnSaveInstanceState(mActivity, outState);
mActivity.finish();
setActivity(null);
mActivity = getActivity();
runTestOnUiThread(new Thread() {
@Override
public void run() {
mInstrumentation.callActivityOnRestoreInstanceState(mActivity, outState);
}
});
关于android - Activity 生命周期单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9400751/