天天看点

[Android问答] 如何实现“退出应用”功能?[Android问答] 如何实现“退出应用”功能?

刚从桌面应用开发转做手机开发的同学常常被这个问题困扰——用户按下Home键后,应用不是“完全退出”而是“运行在后台”,它仍然占用着系统资源,这么多后台运行的应用必然导致系统变慢,是不是应该在我的应用里给用户提供一个“退出菜单”或“退出按钮”呢?

我在Android开发文档里暂时没有找到关于这个问题的解释,但经过在网上调查很多资料以后,我认为答案是比较明显的:不应提供“退出应用”功能。

虽然文档里没有明确说明,但假如这是常用功能,应该有简便的方法实现,而实际上要靠代码“退出”一个应用并非易事。以下总结了能够模拟退出效果的两个方案:

方案1:打开系统主屏来模拟应用退出的效果,这和用户按Home键没有什么区别。

此外,有人建议调用System.exit(0)退出应用,实际测试发现这个方法常常只能关闭当前Activity,或是根本不起作用。

由此可以看出,Android系统的设计里本来就没有“退出应用”的机制,当用户按下Home键或在应用首页里按下Back键后,应用被置于后台,而何时要彻底杀掉应用进程则由系统决定。Android和iOS都已抛弃了“退出应用”这个概念,对手机用户来讲,他只需要知道“启动应用”——概念越少越简单。

参考资料:

<a href="http://stackoverflow.com/questions/2033914/quitting-an-application-is-that-frowned-upon">Quitting an application - is that frowned upon?</a>

<a href="http://stackoverflow.com/questions/3226495/android-exit-application-code">android - exit application code</a>

<a href="http://stackoverflow.com/questions/7239795/how-to-close-exit-an-application-in-android">How to close/exit an application in android?</a>

<a href="http://stackoverflow.com/questions/355168/proper-way-to-exit-iphone-application">Proper way to exit iPhone application?</a>

<a href="https://developer.apple.com/library/ios/#qa/qa2008/qa1561.html">How do I programmatically quit my iOS application?</a>

继续阅读