startActivityForResult的resultCode总是为0的问题

今天遇到一个问题就是情形如下:

在一个Activity A里面使用startActivityForResult启动另一个Activity B

startActivityForResult(mapIntent, ConstantsUtils.TOMAP_REQUEST_CODE);
然后在Activity A中实现onActivityResult方法

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);

switch (requestCode) {

    case ConstantsUtils.TOMAP_REQUEST_CODE:

            if (resultCode == ConstantsUtils.SUCCESS_RETURN_CODE) {
              //do some stuff 
            }
    }
}

然后在Activity B中使用setResult(Activity.RESULT_OK),但是结果onActivityResult中得到的resultCode总是为0,最后在stackoverflow中找到了答案,在此记录一下,原因是我在manifest文件中将Activity B的launchMode设置为了 singleTask,把它去掉就可以了。具体讨论如下:

startActivityForResult的resultCode总是为0的问题_第1张图片


链接:startActivityForResult always return resultCode 0

你可能感兴趣的:(resultCode为0)