2012-10-26 19 views
3

我是新来的Android应用程序的开发。如何在Android中关闭总体应用程序?

我开发了一个android应用程序,在这个应用程序中,当用户按下退出按钮时,我称之为finish()方法。此方法仅关闭当前活动。

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

回答

3

该对象已接受了一些讨论,here是一个应该包含大部分的您正在寻找的信息。

另请参阅Android Documentation on Activities中的活动生命周期和流程生命周期,以了解关闭应用的方式和原因。

3

当你从一个活动活动,呼吁finish()。所以在android stack一个活动会得到finish() or get killed。当您按下背面或顶部活动退出按钮,然后栈变空,然后你就进入菜单屏幕或主屏幕。

例如:当你从一个活动将B活性执行下面的步骤:

startActivity(new Intent(A.this, B.class)); 
finish(); 

所以你一个活动得到完成,&新活动得到启动。在这里,当你按下返回按钮或退出按钮时,你将进入主屏幕或菜单屏幕。

这里,我们有两种方法finish or kill后退按钮按下应用

  1. 使用finish()关闭或完成的Android屏幕上的当前活动。

    例如:你有两个活动,即一个 & 。你会使用意图从启程活动活动,现在前景胡亚蓉是,你想回去&杀活动&转到一个胡亚蓉使用finish()的onclick后退按钮的。如果您对一个活动,则它将关闭应用程序。见下面的代码。

    public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
    finish(); 
    } 
    return super.onKeyDown(keyCode, event); 
    } 
    
  2. 使用android.os.Process.killProcess(android.os.Process.myPid());杀死应用程序即强行关闭应用程序&后藤下面的代码家里screen.see。

    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); 
    } 
    
+0

没有生产代码应该使用'killProcess()'。 – CommonsWare

+0

@CommonsWare - 你的权利,不应该使用killProcess()。这不是一个好习惯。 –

1

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

假设“菜单页”是你的一个活动,叫startActivity(),与Intent识别你的“菜单页面”,并包括FLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_SINGLE_TOP为标志您Intent。这将清除您的任务中的所有活动,并将现有的“菜单页”带到前台(如果没有,则创建“菜单页”的实例)。

相关问题