0

活动1:显示朋友列表的
A。 在好友列表中的某个项目之后,它将转到显示该好友详细信息的活动 2。 ListView
onClick()ProfileActivity

活动 2 ( ProfileActivity):
之后ButtononClick()将进入活动 3 ( NearByActivity),显示 10 公里内的 20 个附近好友列表。

活动 3 ( NearByActivity):onClick()一个项目结束后,将转到活动 2 ( ProfileActivity)。

故事是从 Activity 2 到 Activity3,我不想在finish()Activity 2 开始之前 Activity 因为用户可能想返回。

所以,问题是:
如果用户单击 Activity 3 中的任何项目,如何完成 Activity2 以防止 Activity 2 -> Activity 3 -> Activity 2 -> Activity 3 ...

尽管 Activity 2 会调用多次,但配置文件详细信息取决于单击的用户。

或者有什么其他建议??

4

3 回答 3

1

您可以在 Activity2 中覆盖 onActivityResult()。完成 Activity3 后,只需将结果传递给 Activity2 。

例如

    //In Activity2
onActivityResult(ReqCode , ResultCode, Intent) {
  if(ResultCode == FINISH){
     finish();
  } else if(ResulCode == DO_SOMETHING_ELSE){
     // Do Somthing
  }

}

//Activity 3
onClick1(){
 setResult(FINISH);
 finish();
}

onClick2(){
  setResult(DO_SOMETHING_ELSE);
  finish();
}

在此处查看 onActivityResult

于 2012-12-04T17:33:51.067 回答
0

使用FLAG_ACTIVITY_CLEAR_TOP

如果设置,并且正在启动的活动已经在当前任务中运行,那么不会启动该活动的新实例,而是关闭它上面的所有其他活动,并且此 Intent 将被传递到(现在顶部)作为新意图的旧活动。

于 2012-12-04T12:20:21.770 回答
0

当从活动 3 中单击按钮时。只需发送广播消息(您也可以使用 localbroadcas)。并且在活动 2 中将有一个广播接收器,因此如果它收到包含退出命令的广播消息,那么它将完成()

于 2012-12-04T12:22:10.480 回答