我有3项活动:
登录屏幕是第一次调用的主要活动,点击登录按钮后,我使用以下代码调用主屏幕活动:
finish(); // I am calling finish because I don't want user to press back key at mainscreen and get back to login screen.
Intent it = new Intent(LoginScreen.this,MainScreen.class);
startActivity(it);
在我的主屏幕中,我有一个退出按钮,我正在使用此代码进行登录:
finish();
Intent it = new Intent(MainScreen.this,LoginScreen.class);
containerObject.startActivity(it);
我不知道为什么,但这段代码不会带我登录屏幕。
如果我将代码从上面更改为此代码:
finish();
Intent it = new Intent(MainScreen.this,ProfileScreen.class);
containerObject.startActivity(it);
代码工作得很好,并带我到个人资料屏幕。
让我明确表示我已将所有3项活动添加到清单中。
我是否因为“LoginScreen”是主要活动而遇到此问题?
答案 0 :(得分:0)
迟到总比没有好。
在您的注销按钮单击处理程序中,您必须使用启动活动 containerObject,因为您已经完成了MainScreen活动,所以 你必须去你的活动的父容器。
logoutButtonClick(../..[
finish();
Intent it = new Intent(MainScreen.this,LoginScreen.class);
containerObject.startActivity(it);
}
为确保活动完成,请在点击处理程序中调用this.finish,但在启动您的意图后。
logoutButtonClick(../.. {
startActivity(new Intent(this, LoginScreen.class));
this.finish();
}
然后在LoginScreen活动中覆盖您的onBackPressed事件。所以 背压将继续将用户带到登录屏幕。
@Override
public void onBackPressed() {
startActivity(new Intent(this, LoginScreen.class));
this.finish();
}
我不确定您是否希望在整个过程中管理导航 三个活动之间的应用程序,所以我不会进入更详细的导航之间 ProfileScreen活动和其他两个,但我确定你有足够的信息可以移动 向前迈进。
当我想要保护我应用的密码保护区域时,我会覆盖并管理 我的所有背景事件并在整个应用程序和应用程序生命周期中仔细管理导航,因此无法关闭并重新打开使用密码保护的活动的应用程序。