从后台打开应用程序时如何进入登录屏幕?

时间:2017-06-25 17:22:07

标签: android android-homebutton

当用户点击主页按钮应用程序进入后台时,如果用户从后台打开应用程序,那么它应该进入登录屏幕而不是上一次活动...请帮帮我。

3 个答案:

答案 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()。