我的应用程序中有几个活动。流程是非常复杂的。当我单击注销应用程序导航到登录屏幕时,用户可以从那里通过取消按钮退出(调用system.exit(0)
)
当我退出或后退按钮时,系统调用堆栈中的活动:(当我到达登录屏幕时,如何清除堆栈中的所有活动?调用finish()
是不实际的,因为有太多的活动,有些活动在活动时不应该关闭,例如本机相机调用活动。
validateuser logoutuser = new validateuser();
logoutuser.logOut();
Intent loginscreen = new Intent(homepage.this, Login2.class);
(homepage.this).finish();
loginscreen.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(loginscreen);
发布于 2013-05-22 22:56:53
下面是一个简单的助手方法,用于启动一个新的activity作为新的top activity,它从API level 4一直到当前版本17:
static void startNewMainActivity(Activity currentActivity, Class<? extends Activity> newTopActivityClass) {
Intent intent = new Intent(currentActivity, newTopActivityClass);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
intent.addFlags(0x8000); // equal to Intent.FLAG_ACTIVITY_CLEAR_TASK which is only available from API level 11
currentActivity.startActivity(intent);
}
从您当前的活动中这样调用它:
startNewMainActivity(this, MainActivity.class);
发布于 2015-10-09 16:32:43
Intent intent = new Intent(LoginActivity.this, Home.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //It is use to finish current activity
startActivity(intent);
this.finish();
发布于 2012-12-21 08:03:59
在我的例子中,LoginActivity也被关闭了。结果,
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK
无济于事。
但是,设置
Intent.FLAG_ACTIVITY_NEW_TASK
帮了我。
https://stackoverflow.com/questions/7075349
复制相似问题