V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhgg0
V2EX  ›  Android

安卓的微信、QQ 速度为什么打开非常快?

  •  
  •   zhgg0 · 2016-03-29 17:40:27 +08:00 · 12026 次点击
    这是一个创建于 3165 天前的主题,其中的信息可能已经有所发展或是发生改变。

    微信第一打开速度有点慢,这个速度是正常的。 然后按返回键,退回到手机主界面,然后再打开速度非常快, QQ 也是。 普通 APP 按返回键,退到手机主界面,再点 APP 图标打开的速度要 1 到 2 秒,跟微信 QQ 没得比。

    普通 APP 如果是按 home 键,退到手机主界面,再点图标开的话,也非常快。 难道微信和 QQ 按返回键退出的时候,他们拦截了返回,实际是 HOME ? 从某个 APP 跳到微信,按返回还能跳回原 APP ,所有这种方法是错的。

    按返回键理论上会把当前 activity 销毁掉,微信 QQ 按返回时没销毁?

    23 条回复    2016-03-31 19:23:42 +08:00
    wjfz
        1
    wjfz  
       2016-03-29 17:46:42 +08:00
    这俩 APP 返回键确实没有“彻底”退出。
    微信的彻底退出在设置里, QQ 压根木有彻底退出。
    SpicyCat
        2
    SpicyCat  
       2016-03-29 17:51:07 +08:00
    都在后台进程里面,除非你主动杀掉。
    wlsnx
        3
    wlsnx  
       2016-03-29 18:01:43 +08:00
    因为后台有进程
    qiyuey
        4
    qiyuey  
       2016-03-29 18:10:44 +08:00
    @wjfz 我想楼主问的可能是 activity 肯定已经被销毁掉了, service 和其它的可能还在,但是单纯从 activity 的加载速度来说,微信、 QQ 还是更胜一筹的原因是什么?
    kslr
        5
    kslr  
       2016-03-29 18:14:07 +08:00
    @qiyuey 注意进入的动画了吗
    neoblackcap
        6
    neoblackcap  
       2016-03-29 22:21:21 +08:00
    会不会是一张截图?
    gdtv
        7
    gdtv  
       2016-03-29 22:26:53 +08:00
    @kslr 按返回键“退出” QQ 后,再点击 QQ ,没有任何动画,立即就恢复原先的 QQ 界面。
    thinkloki
        8
    thinkloki  
       2016-03-29 22:33:32 +08:00
    @wlsnx 卡尔王
    alex321
        9
    alex321  
       2016-03-29 22:39:14 +08:00
    Mac OS 的待机恢复就是把待机前的屏幕截图,然后把这张图作为恢复的启动界面。
    所以。。哎,要说用户体验么,我也承认。。
    kirisetsz
        10
    kirisetsz  
       2016-03-29 22:47:04 +08:00   ❤️ 2
    还记得这些 App 请求了一个「 Draw over other app 」么,没错,聪明的你一定知道是怎么回事了……
    wlsnx
        11
    wlsnx  
       2016-03-29 22:49:43 +08:00
    @thinkloki 乞求者
    eastflying
        12
    eastflying  
       2016-03-29 22:50:43 +08:00
    默认情况下,按 back 键时,会调用 Activity 的 finish()方法, Activity 被销毁,下次打开时需要完整执行一遍 Activity 的创建流程,但是如果将 back 事件拦截,执行 moveTaskToBack ()方法,则会将包含该 Activity 的 Task 全部移入 Activity Task 的后台,下次打开时不需要再执行 onCreate()方法。
    eastflying
        13
    eastflying  
       2016-03-29 22:53:28 +08:00
    zhgg0
        14
    zhgg0  
    OP
       2016-03-29 22:58:13 +08:00
    @qiyuey 我想问的就是这个
    morethansean
        15
    morethansean  
       2016-03-29 23:13:01 +08:00
    @zhgg0 并没有被销毁好吗?running services 里那进程那么多内存, 真正销毁之后 running services 里没有占用那么多内存的微信进程,只有个占用内存比较小的 service, 而且这个时候重新打开微信会有 loading 界面的
    heiyutian
        16
    heiyutian  
       2016-03-29 23:15:46 +08:00 via iPhone
    国产流氓真正的退出还得靠冻结,你冻结了再次打开看看快不快
    zhgg0
        17
    zhgg0  
    OP
       2016-03-30 09:24:45 +08:00
    @morethansean activity 打开速度跟 service 有没有销毁关系不大吧,我想表达的是 @qiyuey 说的。
    zhgg0
        18
    zhgg0  
    OP
       2016-03-30 09:25:29 +08:00
    @eastflying 这个方法可行
    morethansean
        19
    morethansean  
       2016-03-30 09:43:22 +08:00
    @zhgg0 我的意思是, activity 根本没有被销毁。
    honeycomb
        20
    honeycomb  
       2016-03-30 10:56:23 +08:00
    @zhgg0

    除了 @eastflying 提到的 Activity 销毁的问题外,可能还涉及包含这个 Activity 进程有没有被杀掉。
    如果没被杀,重建 Activity 的速度应该比进程被杀掉的情况更快
    eastflying
        21
    eastflying  
       2016-03-30 18:16:46 +08:00
    @honeycomb LZ 描述的是在程序界面按 Back 键后返回桌面时的情况,而按 Back 键是不会导致进程被结束的,因此你所说的假设并不成立,请参考:
    http://developer.android.com/reference/android/app/Activity.html#ProcessLifecycle
    http://android-developers.blogspot.jp/2010/04/multitasking-android-way.html
    honeycomb
        22
    honeycomb  
       2016-03-30 19:46:25 +08:00
    @eastflying

    在程序界面按 Back 键后返回桌面,进程不销毁, Activity 会被销毁(如果没有劫持 back 事件),而这样再次回到这个 Activity 就会多出重建这个 Activity 的时间,相比于直接按 home 键(或者是多任务切换键)把 Activity 压栈再返回更慢(需要注意的是, iPhone 没有硬件返回键,因此它更容易出现类似这种情况的多任务切换)。最慢的是杀掉进程,再尝试返回这个 Activity 。

    所以我说的不是假设,是事实(话说回来估计我语文学得不够好没说清楚)。
    Aquamarine
        23
    Aquamarine  
       2016-03-31 19:23:42 +08:00
    @wjfz QQ 轻聊版有
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1138 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:47 · PVG 02:47 · LAX 10:47 · JFK 13:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.