Android后退按钮新意图或完成()

时间:2011-10-13 17:59:10

标签: android activity-stack

我有一个问题。我有一个列表视图(A)和一个详细视图(B)。

在B上,我有一个“查看列表”按钮,始终将用户带到列表中。问题是,我可以通过通知到达B,而不一定是来自A.

所以当点击B时,我不能只使用finish(),因为我可以从通知进来,所以在某些情况下我可能需要开始一个新的活动。

我如何可靠地判断我是从A还是从通知进来,以便我能采取正确的行动。

除此之外,这是我应该担心的吗?或者只是每次都开始一项活动。在我在A - >之间弹跳的情况下B - > A - > B - > A - > B一遍又一遍......从来没有一次调用完()......这样会减慢速度吗?

谢谢,

杰拉德。

2 个答案:

答案 0 :(得分:5)

当您使用intent启动Activity B时,添加一个额外的,然后检查活动B中额外的状态。这是一个使用字符串的示例,尽管您可以使用其他变量类型,如布尔值或int:

Intent i = new Intent(this, ActivityB.class)
i.putExtra("startedBy", "ActivityA"); 

然后在活动B中,你可以获得额外的变量:

Bundle extras = this.getIntent().getExtras(); 
String startedBy = null;

if (extras != null) {
    startedBy = extras.getString("startedBy");
}

答案 1 :(得分:1)

当你离开A - >时,你可以添加一个额外的意图标志。 B,说一个布尔标志。 在活动B上,如果标志不带有额外的意图,则可以将该标志默认为false。