Android - onActivityResult忽略存储的字节

时间:2015-10-09 17:16:49

标签: java android

我的活动启动了startActivityForResult的其他活动。在其他活动中,我更改了一个字节,然后返回原始活动,在调用Intent之前将更改的字节存储在finish()中。

第二项活动:

public void goBack(View backButton){
    Intent previousPage = new Intent();
    System.out.println("open " + currentIndex);
    previousPage.putExtra("language", currentIndex);
    setResult(RESULT_OK, previousPage);
    finish();
}

第一项活动:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == RETURN_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            Intent i = getIntent();
            currentIndex = i.getByteExtra("language", (byte)0);

            System.out.println("onactvityiresult " + currentIndex);
        }
    }
}

该字节最初为0.我在第二个活动中将其更改为1。但系统输出是:

10-09 19:00:34.519    9669-9669/com.example.admin.ghost I/System.out﹕ open 1
10-09 19:00:34.566    9669-9669/com.example.admin.ghost I/System.out﹕ onactvityiresult 0

如果字节最初为1并且我在第二个活动中将其更改为0,则输出为:

10-09 19:10:53.034  13437-13437/com.example.admin.ghost I/System.out﹕ open 0
10-09 19:10:53.331  13437-13437/com.example.admin.ghost I/System.out﹕ onactvityiresult 1

如果我不更改第二个活动中的字节,它会正确显示0和0,或1和1。

就好像第一个活动保持其原始字节无论如何。如何将新字节传递给First Activity?

1 个答案:

答案 0 :(得分:1)

<data onActivityResult的论点是setResult(RESULT_OK, previousPage)的值。