Android是对活动或全局唯一的意图

时间:2017-08-03 18:55:59

标签: java android android-intent

我很好奇一个意图是否是一个集合活动的独特之处。

例如,我目前使用的意图是从活动1中提供一些数据并将其传递给活动2。

Intent intent = new Intent(this, MainActivity.class);
        intent.putExtra("id", id.getText().toString());
        intent.putExtra("weight", weight.getText().toString());
        intent.putExtra("zipTo", zipTo.getText().toString());
        intent.putExtra("locationId", locationID.getSelectedItem().toString());
        intent.putExtra("imageNum", 1);
        startActivity(intent);

现在,在MainActivity中,我可以使用以下代码来检索从上一个活动传递的数据。

Bundle bundle = getIntent().getExtras();
        id = bundle.getString("id");
        weight = bundle.getString("weight");
        locationID = bundle.getString("locationID");
        zipTo = bundle.getString("zipTo");

在MainActivity中完成一些工作后,我需要返回上一个将我们发送到MainActivity的活动(我需要最初发送的数据返回)。

我是否需要重新定义一个意图,然后执行" intent.putExtra" MainActivity中的每个值在发送到第一个Activity之前是什么?或者意图是全局的,一旦在一个活动中定义,我就可以在其他活动中使用getIntent()。getExtras()?

2 个答案:

答案 0 :(得分:2)

意图不是全球性的。您只能访问通过传递的意图开始的活动中的捆绑包。

您应该使用startActivityForResult(intent)。这提供了您正在寻找的行为。

Getting a result from an activity

这个想法是你开始新的意图。在这种情况下' MainActivity'。完成MainActivity中的逻辑后,使用上述策略将结果传递回启动MainActivity的活动。

答案 1 :(得分:0)

通过意图传递的信息不是从一个活动到另一个活动的全局信息,全局是共享首选项和存储在manifest.xml中的元数据信息。