
微信第一打开速度有点慢,这个速度是正常的。 然后按返回键,退回到手机主界面,然后再打开速度非常快, QQ 也是。 普通 APP 按返回键,退到手机主界面,再点 APP 图标打开的速度要 1 到 2 秒,跟微信 QQ 没得比。
普通 APP 如果是按 home 键,退到手机主界面,再点图标开的话,也非常快。 难道微信和 QQ 按返回键退出的时候,他们拦截了返回,实际是 HOME ? 从某个 APP 跳到微信,按返回还能跳回原 APP ,所有这种方法是错的
按返回键理论上会把当前 activity 销毁掉,微信 QQ 按返回时没销毁?
1 wjfz 2016-03-29 17:46:42 +08:00 这俩 APP 返回键确实没有“彻底”退出。 微信的彻底退出在设置里, QQ 压根木有彻底退出。 |
2 SpicyCat 2016-03-29 17:51:07 +08:00 都在后台进程里面,除非你主动杀掉。 |
3 wlsnx 2016-03-29 18:01:43 +08:00 因为后台有进程 |
4 qiyuey 2016-03-29 18:10:44 +08:00 @wjfz 我想楼主问的可能是 activity 肯定已经被销毁掉了, service 和其它的可能还在,但是单纯从 activity 的加载速度来说,微信、 QQ 还是更胜一筹的原因是什么? |
6 neoblackcap 2016-03-29 22:21:21 +08:00 会不会是一张截图? |
| img src="https://cdn.v2ex.com/avatar/3d89/ba6a/72488_normal.png?m=1446530026" class="avatar" border="0" align="default" alt="thinkloki" data-uid="72488" /> | 8 thinkloki 2016-03-29 22:33:32 +08:00 @wlsnx 卡尔王 |
9 alex321 2016-03-29 22:39:14 +08:00 Mac OS 的待机恢复就是把待机前的屏幕截图,然后把这张图作为恢复的启动界面。 所以。。哎,要说用户体验么,我也承认。。 |
10 kirisetsz 2016-03-29 22:47:04 +08:00 还记得这些 App 请求了一个「 Draw over other app 」么,没错,聪明的你一定知道是怎么回事了…… |
12 eastflying 2016-03-29 22:50:43 +08:00 默认情况下,按 back 键时,会调用 Activity 的 finish()方法, Activity 被销毁,下次打开时需要完整执行一遍 Activity 的创建流程,但是如果将 back 事件拦截,执行 moveTaskToBack ()方法,则会将包含该 Activity 的 Task 全部移入 Activity Task 的后台,下次打开时不需要再执行 onCreate()方法。 |
13 eastflying 2016-03-29 22:53:28 +08:00 最后一句说错了,是将 Task 移入 Activity Stack 的后台,请参考: http://developer.android.com/reference/android/app/Activity.html#moveTaskToBack(boolean) http://developer.android.com/guide/components/tasks-and-back-stack.html |
15 morethansean 2016-03-29 23:13:01 +08:00 @zhgg0 并没有被销毁好吗?running services 里那进程那么多内存, 真正销毁之后 running services 里没有占用那么多内存的微信进程,只有个占用内存比较小的 service, 而且这个时候重新打开微信会有 loading 界面的 |
16 heiyutian 2016-03-29 23:15:46 +08:00 via iPhone 国产流氓真正的退出还得靠冻结,你冻结了再次打开看看快不快 |
17 zhgg0 OP @morethansean activity 打开速度跟 service 有没有销毁关系不大吧,我想表达的是 @qiyuey 说的。 |
18 zhgg0 OP @eastflying 这个方法可行 |
19 morethansean 2016-03-30 09:43:22 +08:00 @zhgg0 我的意思是, activity 根本没有被销毁。 |
20 honeycomb 2016-03-30 10:56:23 +08:00 @zhgg0 除了 @eastflying 提到的 Activity 销毁的问题外,可能还涉及包含这个 Activity 进程有没有被杀掉。 如果没被杀,重建 Activity 的速度应该比进程被杀掉的情况更快 |
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 |
22 honeycomb 2016-03-30 19:46:25 +08:00 @eastflying 在程序界面按 Back 键后返回桌面,进程不销毁, Activity 会被销毁(如果没有劫持 back 事件),而这样再次回到这个 Activity 就会多出重建这个 Activity 的时间,相比于直接按 home 键(或者是多任务切换键)把 Activity 压栈再返回更慢(需要注意的是, iPhone 没有硬件返回键,因此它更容易出现类似这种情况的多任务切换)。最慢的是杀掉进程,再尝试返回这个 Activity 。 所以我说的不是假设,是事实(话说回来估计我语文学得不够好没说清楚)。 |
23 Aquamarine 2016-03-31 19:23:42 +08:00 @wjfz QQ 轻聊版有 |