gpt4 book ai didi

android - 清理堆栈并退出应用程序 onBackPressed()

转载 作者:行者123 更新时间:2023-11-29 16:14:40 25 4
gpt4 key购买 nike

基本上我的应用程序有一个登录屏幕,登录后您可以进行许多 Activity 。当我按下主页按钮时,应用程序进入后台,如果用户在一定时间内没有打开它,用户 session 将关闭,您将返回到登录屏幕。现在的问题是,如果我想在我的 session 过期后从 loginScreen 关闭应用程序,我按后退键它应该关闭但它没有。它把我带到堆栈中的前一个元素。

有线的事情是,在所有 onBackPressed() 方法上,每当我开始新的 Intent 时,我总是使用 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);在 loginScreen onBackPressed() 上,我调用 finish()但它不起作用。有人知道为什么吗?我该如何解决这个问题。

感谢帮助!!!

代码 fragment 在许多 Activity 中:

@Override
public void onBackPressed() {
mpButtonClick.start();
Intent intent = new Intent(this, MenuPagina.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
super.onBackPressed();
}

在登录 Activity 中:

@Override
public void onBackPressed() {
super.onBackPressed();
getIntent().setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
LoginActivity.this.finish();
}

最佳答案

你可以通过两种方式做到这一点:

  1. 使用 android.os.Process.killProcess(android.os.Process.myPid()); 后退键终止应用。

为此,您需要在 list 上添加以下权限。

<uses-permission
android:name="android.permission.KILL_BACKGROUND_PROCESSES" />

2。使用默认为 false 的静态 bool “isKill”变量,每次在登录 Activity oncreate() 方法中设置为 false。

在登录 Activity 的 onBackPress() 方法中设置 isKill 值为 true。

然后在每个activity的onResume()方法中写下代码

if(isKill)
{
finish();
}

关于android - 清理堆栈并退出应用程序 onBackPressed(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10428197/

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