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

如何退出背压Android应用程序?

朱鹤轩
2023-03-14

情况可能是这样的,我有5个活动。说主活动,活动1,活动2,活动3,活动4。

一个人可以使用活动1,2,3

情境:用户进入主活动,并按下按钮进入活动2。然后他反压并返回主活动。从那里他现在在另一个按钮的帮助下进入活动3,同样,当他按下后退按钮时,他进入主活动。

主要活动-

问题:现在当用户从活动3进入主活动时。用户处于主活动布局中。现在,如果用户按下手机上的后退按钮,则将执行以下过程退出应用程序:

主要活动-

需要做的事情:我想从主活动本身退出应用程序,如果用户按下手机上的back按钮,那么不是按照上述路径退出应用程序,我希望用户应该能够通过显示一个简单的AlertDialog框从主活动本身退出。

既然我无法找到解决这个问题的办法,那怎么办呢?

共有3个答案

李云
2023-03-14

编写双回按以退出主活动是一个很好的代码实践。

boolean doubleBackToExitPressedOnce = false;

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

this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();

new Handler().postDelayed(new Runnable() {

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

}

田英卓
2023-03-14

添加您的MainActive

@Override
public void onBackPressed() {
finish();
super.onBackPressed();
}
胡野
2023-03-14

您需要在 MainActivity() 中覆盖 onBackPressed(), 并使用 finishAffinity 完成所有活动

< code>onBackPressed()

当活动检测到用户按下后退键时调用。

< code > finish affinity():< code >在API级别16中添加

完成此活动以及当前任务中紧接其下的所有具有相同亲和力的活动。

示例代码

@Override
public void onBackPressed() {
  super.onBackPressed();
  ActivityCompat.finishAffinity(MainActivity.this);
}

我希望用户应该能够通过显示一个简单的AlertDialog框从主活动本身退出它。

@Override
public void onBackPressed() {

        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this)
                .setTitle("Alert")
                .setCancelable(false)
                .setMessage("Are your sure want to exit?")
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        ActivityCompat.finishAffinity(MainActivity.this);
                    }
                })
                .setNegativeButton("No", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                });

        builder.show();

}
 类似资料:
  • 问题内容: 用代码退出Java应用程序的最佳方法是什么? 问题答案: 您可以用于此目的。 根据oracle的Java 8文档: 终止当前正在运行的Java虚拟机。参数用作状态码;按照惯例, 非零状态代码表示异常终止 。 此方法在类Runtime中调用exit方法。此方法永远不会正常返回。 该调用实际上等效于该调用:

  • 问题内容: 如果我的React Native应用无法连接到其后端,我会显示一个带有OK按钮的Alert。如果发生这种情况,应用程序将无法继续运行,因此我想在单击按钮时将其关闭。我该怎么做呢? 我怀疑密钥在AppRegistry中,但是文档有点匮乏。 问题答案: 今天没有反应本机的特定方法。您必须从事物的本机方面完成此任务。 此外,您正在为iOS开发吗?苹果已经表示,应用程序不应自行关闭。

  • 按下后退按钮,我试图从活动中退出应用程序。但问题是在按下返回键后,刷新相同的活动2到3次,进入登录活动,不退出应用程序。有人可以帮助解决这个问题。 以下是我必须尝试退出应用程序的方式。

  • 问题内容: 如何从其线程之一退出整个Python应用程序?仅终止调用它的线程,所以没有帮助。 我不想使用解决方案,因为这不是很干净。 问题答案: 如果除主线程之外的所有线程都是守护进程,则最佳方法通常是thread.interrupt_main()-任何线程都可以使用它在主线程中引发a ,这通常会导致从主线程中合理地干净退出(包括主线程中的终结器被调用等)。 当然,如果这导致某些非守护进程线程使整

  • 问题内容: 我正在使用背景音乐创建游戏应用程序。我使用Android Service播放背景音乐是​​因为我想在更改活动时运行BGM。我的问题是,我在每个活动的onPause方法中都声明了finish()(我不想让用户返回并想杀死该活动)。 因此,当我打算进行其他活动时,它将调用onDestroy并停止该服务。我想停止该服务以完全退出应用程序(按下主页按钮),并想要通过onPause()中的BGM

  • 我已经使用lib gdx库创建了一个应用程序,但是现在当我试图通过下面的代码