我有一个列表适配器,允许用户通过按下其中一个项目来启动同一个Activity的新实例:
docker inspect <container-name>
问题是我已经在CommentActivity中了。如果我在启动新Intent之前写Intent intent = new Intent(mContext, CommentActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(ParseConstants.KEY_OBJECT_ID, commentId);
intent.putExtra(ParseConstants.KEY_SENDER_ID, userId);
mContext.startActivity(intent);
,我会到达我想去的地方,但是当用户按下时我会返回堆栈中的第一个Activity,即MainActivity。我想返回之前的CommentActivity。我该如何解决这个问题?
清单输入:
(Activity) mContext.finish()
答案 0 :(得分:1)
当您使用Intent.FLAG_ACTIVITY_NEW_TASK标志时,您告诉Android启动一个新的Task(活动集合)以包含新的Activity,而不是将新的Activity推送到与当前Task关联的堆栈。
当Activity退出时,Task为空,因此您从Application的根目录返回。
您要做的是将新Activity推送到现有堆栈。这是默认行为,因此请删除
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
线。