当用户点击主页按钮应用程序进入后台时,如果用户从后台打开应用程序,那么它应该进入登录屏幕而不是上一次活动...请帮帮我。
答案 0 :(得分:1)
如果您有多个活动,跟踪“所有活动已暂停 - 转到登录”或类似内容可能会很痛苦。 你可以做什么,这可能会容易得多:
假设您想要某种“登录超时”,您可以跟踪主要活动的onStop / onResume,如下所示:
@Override
protected void onPause() {
activityWasPausedOn = DateTime.now().getMillis();
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
Seconds seconds = Seconds.secondsBetween(new Instant(activityWasPausedOn), new Instant());
if (seconds.getSeconds() >= 200) { //login timeout?
//go to login activity
Intent i = new Intent(....);
startActivity(...);
finish();
}
}
答案 1 :(得分:0)
Android主页按键没有确切的回调函数。您应该使用onPause()
或onResume()
方法添加注销处理代码,具体取决于活动的数量。
如果您有仅两个活动,请尝试以下操作:
@Override
protected void onPause() {
super.onPause();
if (!isFinishing()) {
finish();
//logout();
}
}
答案 2 :(得分:0)
您可以覆盖onPause和onResume方法来实现此目的。
正如您所提到的,返回登录屏幕的后退按钮存在问题,您可以使用
解决此问题finishAffinity();
它用于完成当前活动以及紧接其下的所有活动。它通常用于注销方案。
您可以在onPause()上实现注销逻辑并在那里调用finishAffinity(从堆栈中删除所有活动,以便按下后退按钮不会给您带来麻烦),然后将用户带到登录页面上的onResume()。