为什么导致startActivityForResult来之前活动真正开始?startActivityForResult

2023-09-12 05:45:57 作者:寂寞的唇覆满了烟雾

我有以下的code键启动活动:

I have the following code to start activities:

public boolean onOptionsItemSelected(final MenuItem item) { 
    super.onOptionsItemSelected(item);
    switch (item.getItemId()) {
    case MENU_PREFS:
        startActivityForResult(new Intent(this, PreferencesActivity.class),1);
            break;
    case MENU_ABOUT:
        startActivityForResult(new Intent(this, AboutActivity.class),2);
            break;
        }
    return false;
    }

和以下赶上结果:

    @Override
    protected void onActivityResult(final int requestCode, final int resultCode, final Intent data){

        switch (requestCode){

        case 1:

        case 2:
            if (resultCode==RESULT_CANCELED)
                finish();
        }

但onActivityResult活动之前触发(对于结果)开始。它的工作原理很奇怪。首先,它retuns结果与相应的请求code(1或2我的情况)与结果code = 0,所以我的主要活动结束。而这相应的活动(结果)真正开始之后。 WTH?

but onActivityResult triggers before activity (for result) starts. It works weird. First it retuns result with corresponding requestCode (1 or 2 in my case) with resultCode=0 so my main activity finishes. And right after that corresponding activity (for result) really starts. WTH?

推荐答案

这是一个已知问题或功能的Andr​​oid系统。请参见这线涵盖类似问题

It is a know issue or feature in Android. See this thread which covers similar problem