我有3项活动ActivityA
,ActivityB
,ActivityC
。
我想将Long
从ActivityA
传递到AtivityB
到ActivityC
。
为此,我使用了额外的意图捆绑,并使用相同的密钥。
以下是代码的一部分:
ActivityA
Intent i = new Intent(this, ActivityB.class);
i.putExtra(ActivityB.MY_KEY, Long.valueOf(3000));
startActivity(i);
ActivityB
if (getIntent().hasExtra(ActivityB.MY_KEY))
myId = getIntent().getExtras().getLong(ActivityB.MY_KEY, -1);
//after this, myId = 3000
活动的后期
Intent i = new Intent(this, ActivityC.class);
i.putExtra(ActivityB.MY_KEY, Long.valueOf(myId));
startActivity(i);
ActivityC
if (getIntent().hasExtra(ActivityB.MY_KEY))
myId = getIntent().getExtras().getLong(ActivityB.MY_KEY, -1);
//after this, myId = -1
但如果我使用另一个密钥从B
传递到C
,它会按预期工作,myId将为3000.
有人能告诉我为什么会这样吗?我很确定我过去已经遇到过这个问题,但我不记得这个问题......
更新 我想我发现了什么可能是问题,但还没有找到解决方案。
问题与我使用相同密钥的事实无关,但事实上,除了这个值,我还试图发送一个parcelabe对象... < / p>
当我删除此parcelable时,值正确传递。
您认为它可能与实施可分割实施相关吗?
很抱歉从开始没有说出这个,但我不知道它会影响...