微信第一打开速度有点慢,这个速度是正常的。 然后按返回键,退回到手机主界面,然后再打开速度非常快, 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
会不会是一张截图?
|
9
alex321 2016-03-29 22:39:14 +08:00
Mac OS 的待机恢复就是把待机前的屏幕截图,然后把这张图作为恢复的启动界面。
所以。。哎,要说用户体验么,我也承认。。 |
10
kirisetsz 2016-03-29 22:47:04 +08:00 2
还记得这些 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 轻聊版有
|