使用额外的包(相同的密钥)

时间:2016-10-06 22:19:52

标签: android android-activity android-bundle

我有3项活动ActivityAActivityBActivityC

我想将LongActivityA传递到AtivityBActivityC

为此,我使用了额外的意图捆绑,并使用相同的密钥

以下是代码的一部分:

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时,值正确传递。

您认为它可能与实施可分割实施相关吗?

很抱歉从开始没有说出这个,但我不知道它会影响...

0 个答案:

没有答案