如何在安卓系统中关闭所有应用程序?

3

我是新手Android应用程序开发者。

我开发了一个Android应用程序,在该应用程序中,当用户按下返回或退出按钮时,我调用finish()方法。这个方法只关闭当前活动。

我的要求是:当我点击退出按钮时,它应该关闭所有活动并显示菜单页面。这可能吗?

3个回答

3
当您从A活动切换到B活动时,请调用finish()。因此,在android stack中,A活动将会获得finish()或被杀死。当您在顶部活动上按下返回或退出按钮时,堆栈将变为空,并且您将回到菜单屏幕或主屏幕。
例如:当您从A活动转到B活动时,请执行以下步骤:
startActivity(new Intent(A.this, B.class));
finish();

当你的A活动完成并启动了新的B活动。在这里,当您按下返回按钮或退出按钮时,您将返回主屏幕或菜单屏幕。

我们有两种方法来在按下返回按钮时结束或终止应用程序。

  1. Using finish() which closes or finishes the current activity on android screen.

    for example : you have 2 activities i.e A & B. You ll go from A activity to B activity using intent, now foreground acitivity is B, you want to go back & kill B activity & goto A acitivity use finish() onclick of backbutton. If your on A activity then it closes the app. see below code.

    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
    finish();
    }
    return super.onKeyDown(keyCode, event);
    }
    
  2. Using android.os.Process.killProcess(android.os.Process.myPid()); which kills the app i.e force close the app & goto the home screen.see below code.

    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
    // Kills & force closes the app 
    android.os.Process.killProcess(android.os.Process.myPid());
    }
    return super.onKeyDown(keyCode, event);
    }
    

@CommonsWare -- 你是对的,不应该使用killProcess()。这并不是一种好的实践。 - Rahul Baradia

3

1
我的需求是,当我点击退出按钮时,它应该关闭所有活动并显示菜单页面。假设“菜单页面”是您的一个活动,请调用startActivity(),使用标识您的“菜单页面”的Intent,并在Intent上包含FLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_SINGLE_TOP作为标志。这将清除任务中的所有活动,并将现有的“菜单页面”置于前台(如果没有,则创建“菜单页面”的实例)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接