通过Intent传递的值有时会返回null

4

我正在通过Intent传递一些值,在某些情况下,通过它传递的值返回null。该值在设置到意图上之前不为null。以下是我设置意图的代码:

Intent propertyIntent = new Intent(mContext , SomeActivity.class);
propertyIntent.putExtra(START_MODE_TAG,MODE_EDIT_RECORDING);
propertyIntent.putExtra(ACTIVITY_MODE_TAG, "dm");
propertyIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
propertyIntent.putParcelableArrayListExtra("det_list", detList);
mContext.startActivity(propertyIntent);

这里是用于获取意图值的代码。
passedModeName = getIntent().getStringExtra(DMApplication.START_MODE_TAG);

只有 START_MODE_TAG 的值返回 null,其他的都正确。我尝试在 onNewIntent() 中设置了它,但是没有用。

我在其中使用的常量:

public static final String ACTIVITY_MODE_TAG="activity_mode";
public static final String START_MODE_TAG="StartMode";
public static final String MODE_NEW_RECORDING="new";
public static final String MODE_EDIT_RECORDING="edit";
public static final String MODE_REVIEW_RECORDING="review";
public static final String MODE_COPY_RECORDING="copy";
public static final String MODE_LAUNCH_RECORDING="launch";

然后 MODE_EDIT_RECORDING 必须为空。 - Naresh
你能也发布一下你的常量定义吗? - Ridcully
不确定为什么会有所不同(对我来说确实如此),但请尝试限定所有关键字符串,例如 START_MODE_TAG="com.my.package.StartMode" - David O'Meara
2个回答

0
你应该以以下方式获取额外数据。
Bundle extras = getIntent().getExtras();
selectedGroupId = extras.getString(DMApplication.START_MODE_TAG);

0

检查键*DMApplication.START_MODE_TAG*是否与*START_MODE_TAG*相同,并且MODE_EDIT_RECORDING不为null。


我检查了它,在我设置这些 Intent 后,它有值。 - Aju

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接