本文介绍了onActivityResult()意图数据始终为null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以告诉我为什么 Intent数据总是为空吗?

Can somebody tell my why the Intent data is always null?

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

if (resultCode == RESULT_OK) {
    if (requestCode == UPDATE_PROFILE_REQUEST_CODE) {

        if (data != null) {
            User user = (User) data.getExtras().getSerializable(USER_DATA_EXTRA);
            if (user != null) {
                notifyNeedUpdate(user);
            }
        } else {
            Log.e("Dev", "data is null");
        }

    }
}

}

这是我设置结果的方式:

and this is how I set the result:

setResult(RESULT_OK, getIntent().putExtra(ProfileActivity.USER_DATA_EXTRA, constructUser()));

constructUser()只会创建我需要的对象.

constructUser() just creates an Object I need.

我总是得到 Log.e("Dev",数据为空"); .

推荐答案

在致电

setResult(RESULT_OK, getIntent().putExtra(ProfileActivity.USER_DATA_EXTRA, constructUser()));

即您应该在 onPause onStop onDestroy finish 之前调用 setResult .等等

i.e. you should call setResult before onPause, onStop, onDestroy, finish ... etc

这篇关于onActivityResult()意图数据始终为null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-14 16:37