gpt4 book ai didi

android - Onbackpressed 关闭应用程序登录后不关闭应用程序

转载 作者:搜寻专家 更新时间:2023-11-01 09:44:40 26 4
gpt4 key购买 nike

我的应用程序包含 2 个主要 Activity 和 1 个次要 Activity (登录弹出窗口)

  1. Activity 是 PreLogin Activity ,其中用户有应用程序信息和一些其他内容以及用于登录的按钮。当他按下该按钮时,新 Activity 将以弹出窗口的形式启动。如果他点击返回那里,该 Activity 将关闭,用户将返回到之前的 Activity 。

  2. Activity 是 PostLogin,我在那里实现了这个功能:

我的代码:

public void onBackPressed() {
if (doubleBackToExitPressedOnce) {
super.onBackPressed();
finish();
return;
}

this.doubleBackToExitPressedOnce = true;
final View coordinatorLayoutView = findViewById(R.id.coordinator);

Snackbar.make(coordinatorLayoutView, "Press again to exit.", Snackbar.LENGTH_LONG).show();
new Handler().postDelayed(new Runnable() {


@Override
public void run() {
doubleBackToExitPressedOnce=false;

}
}, 5000);
}

此代码应关闭我的应用程序,但问题是按返回按钮 2 次,显示灰色屏幕,用户需要再次单击返回按钮才能退出应用程序。

我很确定问题与我的 Prelogin Activity 有某种联系,因为当我在我的 Prelogin Activity 上尝试 noHistory 时,onBackpressed() 非常有效,但我不能使用这种方法是因为我需要在我的 Prelogin 上有历史记录,所以后退按钮适用于 Login Popup。

最佳答案

您只需使用下面的简单代码即可实现。

@Override
public void onBackPressed() {
if (back_pressed + 2000 > System.currentTimeMillis()) {
//Intent intent = new Intent(Intent.ACTION_MAIN);
//intent.addCategory(Intent.CATEGORY_HOME);
//intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//startActivity(intent);
super.onBackPressed();
} else {
Toast.makeText(this, "Press the back button once again to close the application.", Toast.LENGTH_SHORT).show();
back_pressed = System.currentTimeMillis();
}
}

这里,20002 Seconds,你可以把它改成你喜欢的任何值。如果在 2 秒 内再次按下后退按钮,则只有它会返回。

如果需要可以调用上一个activity的Intent,也可以去掉注释掉的Intent代码回到Home 屏幕。

关于android - Onbackpressed 关闭应用程序登录后不关闭应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38551904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com