Android:Intent Flag用于销毁活动并启动新活动

时间:2013-11-05 20:52:57

标签: android android-intent android-activity flags

所以我有一个登录活动 当我输入用户名和密码并单击登录按钮时,此活动会使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并且只是启动一个新的或者是否有办法在我退出时重置字段?哪种方法更好?

2 个答案:

答案 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活动的新实例。

相关问题