我已经看到了一个非常接近于解决我的问题的答案: https://stackoverflow.com/a/13060588/1481760
我正在寻找创建一个ActivityInstrumentationTestCase2来测试onActivityResult以获取各种“requestCode”值。
答案 0 :(得分:0)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request it is that we're responding to (THIS IS WHAT YOU ARE LOOKING FOR)
if (requestCode == PICK_CONTACT_REQUEST) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
}
}
}
答案 1 :(得分:0)
您可以像下面一样使用它,
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
switch (requestCode) {
case CAPTURE_AUDIO:
//your code for audio result
break;
case CAPTURE_VIDEO:
// your code for video result
break;
default:
break;
}
}
}
答案 2 :(得分:0)
当您使用以下方法时,请求代码是userdefine,您可以在此处指定任何数字。
startActivityForResult(i, requestCode);
并且您在参数requestCode上收到了相同的requestCodeon以下方法。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}
答案 3 :(得分:0)
我的错误......在我的测试用例中,我忘了触发实际使用startActivityForResult的代码。我纠正了这一点并且正如预期的那样导致onActivityResult被调用。允许我使用各种requestCode值测试onActivityResult。
一个提示 - 请记住,waitForMonitorWithTimeout的第二个参数(超时)以毫秒为单位,而不是文档所示的秒数。