我的应用程序中所有的活动都有注销按钮,用户可以从任何活动注销。我想在不显示上一个活动的情况下将用户发送到登录活动。为此,我使用以下方法:
以下是注销方法删除会话
public void logoutUser() {
//clearing all data from sharedPreferences
editor.clear();
editor.commit();
Intent intnt = new Intent(contxt, LoginActivity.class);
// Closing all the Activities
intnt.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// Add new Flag to start new Activity
intnt.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
// Staring Login Activity
contxt.startActivity(intnt);
}
当用户在第二个活动中单击注销按钮时,将调用注销方法。我的第二个活动类继承自SherlockFragmentActivity。
public void Logout(MenuItem v) {
sessionMngr.logoutUser();
}
当我按下注销按钮时,我会进入登录界面,但是当我按下设备上的返回按钮时,它会显示以前的活动 - 当我在登录界面按下返回按钮时,我应该进入Android主屏幕。
我在stackoverflow上看到了一些问题,但没有实现我的目标。有人告诉我在清单文件中使用android:noHistory="true",但是当我在第三个活动中并按下返回按钮时,它会显示Android主屏幕,但它应该进入第二个活动。我还尝试了FLAG_ACTIVITY_NO_HISTORY,但这也没有实现我的目标。
我不明白我错在哪里。请问有没有解决方案。
提前感谢。