我正在使用下面介绍的方法来验证我正在测试的活动是否开始另一个活动。
Instrumentation.addMonitor (IntentFilter filter, Instrumentation.ActivityResult result, boolean block)
根据文档, block 参数控制监视器是否应该阻止活动开始(返回其预设结果)。这就是我想要实现的 - 我想将 AcitivityResult 返回到调用活动:onActivityResult()。我使用的代码如下:
Intent resultIntent = new Intent();
Bundle bundle = new Bundle();
bundle.putLong(ActivityBundleKeys.KEY_TEST, 2L);
resultIntent.putExtras(bundle);
ActivityResult result = new ActivityResult(Activity.RESULT_OK, resultIntent);
ActivityMonitor monitor = mInstr.addMonitor(MapViewActivity.class.getName(), result, true);
mSolo.clickOnView(btnMap); //button properly clicked, activity started
Activity currentActivity = mInstr.waitForMonitor(monitor);
如果我理解正确,如果我将“true”传递给 addMonitor(),启动应该被阻止并且我的调用活动应该收到模拟结果。它没有发生。请求的活动正常启动,并且在模拟器中可见。结果不会返回给调用活动。有人有类似的问题吗?