为什么导致startActivityForResult来之前活动真正开始? [英] Why does result from startActivityForResult come before activity really starts?

查看:101
本文介绍了为什么导致startActivityForResult来之前活动真正开始?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下的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

这篇关于为什么导致startActivityForResult来之前活动真正开始?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆