第一个活动中的onActivityResult在完成第二个活动后未返回结果

时间:2016-05-28 12:04:21

标签: android android-activity startactivityforresult

活动A使用以下代码调用ActivityB

28-05-2016 12:53:19
28-05-2016 12:53:19

活动B通过以下方式调用活动c:

startActivityForResult(new Intent(context, ActivityB), 1);

我用返回结果完成了活动C并开始新的活动D

startActivityForResult(new Intent(context, Activityc), 2);

我想在获取返回结果

上完成活动A和活动B.

但我没有得到返回结果。在这种情况下

startActivity(new Intent(context, ActivityD);
setResult(RESULT_OK, new Intent());
finish();

总之我想要这个功能

onActivityResult no calling in Activity A and Activity B

我只得到两者之一。它的下一个活动或回归结果。我希望同时返回返回结果的下一个活动。

2 个答案:

答案 0 :(得分:0)

可能您没有设置requestCode,这就是您遇到此问题的原因,请尝试这种方式

public final static int GO_FOR_COUNTRY = 11;
public final static int GO_FOR_STATE = 12;

 @Override
    public void onClick(View v) {

        switch (v.getId()) {
           case R.id.register_country:
                Intent intents=new Intent(Registration.this,CountryList.class);
                startActivityForResult(intents, GO_FOR_COUNTRY);
                break;

            case R.id.register_state:
                Intent intentstate=new Intent(Registration.this,StateList.class);

                intentstate.putExtra("cids",cid);
                startActivityForResult(intentstate, GO_FOR_STATE);
                break;


            default:
                break;
        }

并在你的OnActivityResult

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);


        if (resultCode == Activity.RESULT_OK) {


            switch (requestCode)
            {

                case GO_FOR_COUNTRY:

                    try {

                       //your stuff
                    } catch (Exception e) {

                        e.printStackTrace();
                    }
                    break;

                case GO_FOR_STATE:

                    try {

                        //your stuff
                    } catch (Exception e) {

                        e.printStackTrace();
                    }
                    break;

            }



        }


    }

答案 1 :(得分:0)

我试图解决我的问题,但我无法找到任何地方。实际上Android活动并不是全部启动活动并同时返回结果集。所以我需要以替代方式管理它。