当前位置: 首页 > 知识库问答 >
问题:

如何防止用户按下后退按钮,因为如果用户按下后退,则会关闭应用程序并从第一个活动重新启动它

司寇季
2023-03-14

嘿,伙计们,我目前正在为我的最终项目开发一个应用程序,这个概念是一个保持联系的应用程序,但有用户登录和注册。当用户输入他们的凭据并按下登录按钮时,它会启动一个意图移动到另一个页面,在此 Intent 上,我用 .finish() 方法结束它,这样用户就无法返回,但是当执行该操作时,用户意外按下设备上的物理后退按钮,应用程序将关闭,如果您尝试通过执行多任务物理按钮再次打开它在设备上,你选择它,它从头开始再次启动应用程序(登录屏幕),我怎么能让它,如果用户意外按下它,他们可以从应用程序的多任务或物理图标再次打开它,所以它从它离开的位置拾取(登录后的显示活动)基本上不重新启动应用程序。

这有可能吗?

提前谢谢

共有2个答案

夏侯旻
2023-03-14

首先,要停止设备默认后退键事件,您必须删除超级。来自活动的onBackPressed()的onBackPressed()

@Override
public void onBackPressed() {
// super.onBackPressed(); 
}

现在,为了在登录后保持流管理,您必须将活动名称或任何其他值保存到SharedReferences,以便每当您再次访问应用程序时,您将检查登录后的最后一个活动。并导航到相同位置。

SharedPreferences preferences = getSharedPreferences("AppName", Activity.MODE_PRIVATE);
Editor editor = preferences.edit();

//add this to onCreate of the activity where you want to come directly
editor = editor.putString("LAST_ACTIVITY", "MULTITASK_ACTIVITY/*Navigated activity name*/").commit();

现在,在加载屏幕中检查应用程序启动:

if(preferences.getString("LAST_ACTIVITY", "").equalsIgnorCase("MULTITASK_ACTIVITY")){
//Navigate to Mutitask activity
}else{
//Navigate to other activity
}
冯野
2023-03-14

在活动中重写OnBackPress(),并删除super.onBackPress()。

@Override
public void onBackPressed() {

//super.onBackPressed();}

 类似资料:
  • 我通过以下代码阻止返回登录活动: 当用户处于第二个活动上并且他按下主页按钮,应用程序进入后台,当他恢复它时,第二个活动出现 - 没关系。但是,当用户在第二个活动中按后退按钮时,应用程序进入后台,当他重新喜欢它时 - 登录活动再次创建并且它处于前期。 如何防止再次创建登录活动?或者,我不应该完成登录活动,而是应该检查用户是否已登录-如果是,我应该显示第二个活动? 清单:

  • 我有一个活动,当我的应用程序首次启动时开始(只有一次)。该活动允许用户选择主题。然后当他们按下完成键时,我完成了这项活动。这会将用户引导到主活动。但是当用户按下返回按钮时,它会返回到第一次启动的活动(我使用完成()关闭的活动)。但我想要的是,应用程序应该关闭时,用户按下返回按钮从主活动(总是)。我在两个类中都重写了onBackPress。 这两个类中的onBackPressed方法如下所示: 主活

  • 我有一个玩家活动和浮动玩家(服务),点击后退按钮后,玩家活动关闭,浮动玩家开始行动,当我点击浮动玩家时,我想回到玩家活动,但没有再次运行创建方法。 我在StackOver Flow中读到了很多解决方案,特别是使用FLAG\u ACTIVITY\u CLEAR\u TOP和FLAG\u ACTIVITY\u SINGLE\u TOP标志,或者将android:launchMode=“singleTa

  • 我正在安装我的应用程序,然后使用主活动保存数据,并转到另一个片段活动。下一次我启动我的应用程序时,总是预览第二个片段,然后按“返回”键返回主活动,但我不想返回主活动。我想按后退按钮关闭我的应用程序。我试试这个

  • 我正在使用android导航组件库。我用导航图设置了两个片段。我想在我的片段内按下后退按钮时做一些额外的动作。 我使用这段代码来处理工具栏上的按钮点击,但我也想处理后退按钮按下。我该怎么做?

  • 我目前正在处理一个Android项目,当用户在使用对话框主题的活动上按后退按钮时,我遇到了问题。 基本上,我有一个活动,让我们称之为我的活动,第二个活动使用@android: style/Theme.Holo.Dialog称为MyDialog。 当MyDialog活动显示在屏幕上时,活动对话框在对话中按预期启动,但当用户按下返回按钮时,对话框活动按预期关闭,但启动活动即MyActive似乎结束了,