2010-11-04 56 views
4

我正在寻找完全关闭我的应用程序的按钮的代码。如何以编程方式关闭应用程序?

我尝试了一些Google的东西,但我的应用程序仍在后台运行。我需要完全关闭它。有没有这样的代码?

+1

有时例外是一种方式去。 :)他们肯定会** **你的应用程序。 – 2010-11-04 17:46:34

回答

6

为什么你需要真正关闭你的应用程序?假设这只是一个普通的应用程序,并没有运行任何后台服务或持有唤醒锁(你会知道如果你正在做这些事情),该系统做了很好的任务管理工作,并且会在你的应用程序停止后,并且需要时结束RAM没有任何人工干预。通常如果你只是finish()你的基地Activity这将发生在它自己的,但几乎没有理由这样做。

(唯一的例外是,如果您的Application以某种方式持有对已完成活动的引用,这会引起丑陋的内存泄漏并阻止您的应用正常关闭,但是您也可能知道自己是否用重写的Application子类做任何事情。)

即:如果要强制关闭应用程序,99%的时间需要修复代码中的任何错误使您认为系统无法自行处理它,或者您需要再次重读documentation on the Android application lifecycle(因为在开始编写Android应用程序之前,您应该已经阅读了3次))。

4

也许这个链接将帮助developer page

我引用下面的部分,我认为可能会帮助你。

关闭部件

内容提供商,而它的响应来自ContentResolver的一个请求 仅 活性。而一个 广播接收器仅在 有效时才会响应广播 消息。所以不需要 明确地关闭这些组件。

另一方面,活动提供了 用户界面。他们正在与 用户进行长时间运行的对话 ,并且可能保持活动状态,即使 处于空闲状态,只要对话 继续。同样,服务可能也会长时间运行。 所以Android有方法来关闭 活动和服务有序 方式:

活动可以通过调用finish()方法关闭。一个 活动可以通过调用 finishActivity()来关闭另一个 活动(它以 startActivityForResult()开头)。

可以通过调用stopSelf()方法或通过调用Context.stopService()调用 来停止服务。

组件也可能被 系统或关机时,他们不再 使用时必须Android的回收 内存更积极 组件。稍后的部分,组件 生命周期,更详细地讨论了这种可能性 及其后果。

0

必须记住:

finish(); 

方法只关闭当前活动。 如果您打开了多个活动,则应该为每个活动调用finish()。

注意:关闭服务是不同的。

4

您可以关闭从后台的所有活动,并当重新打开应用程序从第一次活动开始

this.finish(); 
Intent intent = new Intent(getApplicationContext(), CloseApp.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

您可以从后台关闭所有活动并重新打开应用程序时它从暂停活动开始[你关闭]活动

this.finish(); 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
相关问题