Android假退出不是流氓行为
关于Android程序的退出,目前我们没有再用System.exit(0)或killProcess的机制而是直接用Activity.finish假退出了。因此在内存充足时,用进程工具会发现我们的程序退出后还在内存里。上一篇文章中我也说了这是Android本身的内存管理和Activity生命周期的机制决定的,本来就是无可厚非的。
但有人说这一来会有小白认为我们的程序老占着后台不好,特别是用360什么的能看到你的进程,看起来像流氓行为。另外我记得有人跟我说他测试过其它常用的程序如QQ都会自动退出,你为什么做不到?搞得我都有点担心。但是我今天实际试验了一下,压根没这回事,QQ也没有完全退出,在它退出后我仍然能用工具看到它(我手机上用的是QQ for pad版)。然后我又测试了几个程序,如新浪微博和安卓优化大师,发现它们也是假退出,退出后进程还在。我估计其他人说他手机上会退出,多半是因为他的机器跑的东西太多内存不足。我机子上测试时是有500M空闲内存。
之后我又试验发现,如果只有一个RootActivity,可以用System.exit(0)或killProcess退出;但如果你开了多个Activity,没有管理员权限则无法主动退出的(我是在2.3的Android系统上试的)。特别纠结于假退出的开发人员,可考虑用这个根Activity强制结束的方式退出,但这种破坏性的操作显然是不被推荐的,说不定高版本的SDK会屏蔽这个方法。
所以结论就是,假退出是正常行为,是国际惯例,正常的假退出并非流氓行为。我们应该是理直气壮的假退出,没必要为小白们说几句就为假退出感到纠结和惭愧。
Android假退出不是流氓行为的更多相关文章
- android完全退出应用程序
android 完全退出应用程序android android 退出应用程序, 单例模式管理Activity引自:http://www.yoyong.com/archives/199android 退 ...
- 【Android】退出运行了多个Activity的应用
日常开发APP的时候,绝大多数情况下会有多个Activity,而finish()方法只能结束掉一个Activity,那么,我们可以通过什么方法去退出整个Application呢? 根据各大牛的经验,有 ...
- android 安全退出应用程序的几种方法
android 安全退出应用程序的几种方法 正常关闭应用程序: 当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程.a ...
- Android中退出多个Activity的两个经典方法
这里介绍两种方法:一种把每个activity记住,然后逐一干掉:另一种思路是使用广播. 方法一.用list保存activity实例,然后逐一干掉 上代码: import java.util.Linke ...
- android中退出当前应用程序的四种方法
android中退出当前应用程序的四种方法 [IT168 技术]Android程序有很多Activity,比如说主窗口A,调用了子窗口B,如果在B中直接finish(), 接下里显示的是A.在B中如何 ...
- Android 软件退出系统方法重写
Android 软件退出系统按键方法重写 //针对Andriod软件退出系统按键方法重写 ;//key down time @Override public boolean onKeyDown(int ...
- Android 怎么退出整个应用程序?
方法一: 我们在写android应用程序时,经常会遇到想退出当前Acitivity,或者直接退出应用程序.我之前的一般操作是按返回键,或者直接按home键直接返回,其实这两种操作都没有关闭当前应用程序 ...
- ANDROID 应用退出
在android中finish()和system(0)都只能退出单个activity.杀进程等的等方式都不行~~~解决问题: 在针对 多activity中退出整个程序,例如从A->B->C ...
- android 完全退出应用程序(重要)
android退出应用程序会调用android.os.Process.killProcess(android.os.Process.myPid())或是System.exit(0),这只是针对第一个A ...
随机推荐
- MetaData Lock 杨奇龙 ---MYSQL博客专家
http://blog.itpub.net/22664653/viewspace-1791608/ http://blog.csdn.net/dba_waterbin/article/details/ ...
- sort()排序 collections.sort();
1.main方法: public class Test { public static void main(String[] args) { /** * * sort()方法详解 * 1.Collec ...
- mysql wait_timeout和interactive_timeout总结
(1)interactive_timeout:参数含义:服务器关闭交互式连接前等待活动的秒数.交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE ...
- 手把手教你从Core Data迁移到Realm
来源:一缕殇流化隐半边冰霜 (@halfrost ) 链接:http://www.jianshu.com/p/d79b2b1bfa72 前言 看了这篇文章的标题,也许有些人还不知道Realm是什么,那 ...
- SpringMVC注解@RequestMapping
/** * GET 查询 * * @return 视图路径 */ @RequestMapping(value = {"/index&q ...
- 如何使用Git上传项目代码到代码服务器
如你本机新建Git项目 地址:git@github.com:yourName/yourRepo.git,远程代码库服务器地址:192.168.10.1,远程代码服务器账户名密码:admin 密码:12 ...
- PHP中的strtotime()对于31日求上个月有问题
原文出处 <?php $date = "2012-07-31"; $date_unix = strtotime($date); $lastmonth = strtotime( ...
- 【原创教程】JavaScript详解之语法和对象
JavaScript的好的想法:函数.弱类型.动态对象和一个富有表现力的对象字面量表示法. JavaScript的坏的想法:基于全局变量的编程模型. 好了,不管他是好的还是坏的,都是我的最爱,下面 ...
- html-----002
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- How To Read a Paper.md
@ Titile How To Read a Paper.md @ author Keshav, 译 uuplusu # 1. Intro 1. 读论文重要 2. 没有人教 3. ...