zoukankan      html  css  js  c++  java
  • Android假退出不是流氓行为

    转自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会屏蔽这个方法。

    所以结论就是,假退出是正常行为,是国际惯例,正常的假退出并非流氓行为。我们应该是理直气壮的假退出,没必要为小白们说几句就为假退出感到纠结和惭愧。


  • 相关阅读:
    【外企面试】求一个链表中环的入口【强势证明】
    LeetCode5. Longest Palindromic Substring 最长回文子串 4种方法
    LeetCode4. Median of Two Sorted Arrays---vector实现O(log(m+n)--- findkth
    PAT1030 Travel Plan (30)---DFS
    LeetCode3. Longest Substring Without Repeating Characters
    LeetCode 题目总结/分类
    PAT1029.Median (25)
    PAT1028. List Sorting (25)---strcmp
    重新开始征程
    Dotnet文件格式解析
  • 原文地址:https://www.cnblogs.com/noble/p/4144181.html
Copyright © 2011-2022 走看看