测试特定requestCode的onActivityResult

时间:2014-02-11 08:29:41

标签: android onactivityresult

我已经看到了一个非常接近于解决我的问题的答案: https://stackoverflow.com/a/13060588/1481760

我正在寻找创建一个ActivityInstrumentationTestCase2来测试onActivityResult以获取各种“requestCode”值。

4 个答案:

答案 0 :(得分:0)

来自Android Doc

@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的第二个参数(超时)以毫秒为单位,而不是文档所示的秒数。