所以我有一个登录活动 当我输入用户名和密码并单击登录按钮时,此活动会使login.xml布局膨胀,该布局具有USER_NAME和PASSWORD EditText视图。我开始一个新的活动。
新的Activity有一个Logout按钮,基本上只是启动上一个Activity,如下所示:
Intent loginIntent = new Intent(getActivity(), Login.class);
loginIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
getActivity().startActivity(loginIntent);
根据Android文档,该标志执行以下操作:
http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP
如果设置,则正在启动的活动已在运行中 当前任务,然后而不是启动它的新实例 活动,其上的所有其他活动将被关闭 这个意图将作为一个传递到(现在在顶部)旧活动 新的意图。
问题是我退出后用户名和密码仍然出现在EditText视图中,是否有一个破坏Login活动的Flag并且只是启动一个新的或者是否有办法在我退出时重置字段?哪种方法更好?
答案 0 :(得分:27)
您有两个选择:
1 - 成功登录后终止登录活动
Intent loginIntent = new Intent(getActivity(), Login.class);
loginIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
getActivity().startActivity(loginIntent);
finish();
2 - 清空值然后开始新活动
edittext_username.setText("");
edittext_password.setText("");
答案 1 :(得分:4)
如果您仅支持API级别11+,则应该能够使用FLAG_ACTIVITY_CLEAR_TASK。这将完成所有任务中的所有现有活动,并创建Login活动的新实例。