Android意图额外数据丢失

我正在尝试使用意图的额外内容在我的应用程序内部传递一些数据.

我将数据附加到意图,如下所示:

Intent i = new Intent(ActivityFrom.this, ActivityTo.class);
i.putExtra(CONST_KEY, true);
startActivity(i);

public static final String CONST_KEY = "MyBooleanValue";

我试图在启动的ActivityTo的onCreate方法中检索数据,如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Bundle extra = getIntent().getExtras();
    if ( extra != null ) {
        boolean b = extra.getBoolean(ActivityFrom.CONST_KEY);
    }
}

但是,我从未遇到过if-block,因为Bundle总是为null.

为什么我的演员会丢失?我需要更改什么来检索我对意图的附加内容?

编辑

>纠正了代码中的拼写错误
>添加了完整的onCreate方法声明
>这是清单中的ActivityTo声明:

<activity
    android:name=".ActivityTo"
    android:launchMode="singleTask"
    android:screenOrientation="portrait">
</activity>

最佳答案 问题是接收任务的android:launchMode =“singleTask”属性.设置此项后,所有以ActivityTo活动为目标的意图都将由同一对象接收.如果已经创建了活动,则通过活动的onNewIntent(Intent)方法发送intent.像这样覆盖它:

protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
}

这样,您可以使用getIntent()获取新的意图.

点赞