Activity
生命周期&启动模式
- onStart 在后台不显示出来,其实也是可见 我们看不到。
- onResume在前台显示出来,这时候真正可见。
- 新的Activity用的是透明主题,则跳转的Activity 不会进onStop。
- back 键会onPause->onStop->onDestory。
- 后台Activity 优先级比较低,容易因为内存不够(Low Memory Kill)导致被杀死。需要放到Service 中。
- SingleTop(不干掉上面的)和SingleTask(干掉上面的)会在第二次被调用之后 会走onNewIntent 方法。此时不会走onCreate /onStart。
- Intent Flag 启动模式
- NEW_TASK 新起一个task来启动activity 一般运作于service 中启动activity。
- SINGLE_TOP 和 CLEAR_TOP和 分别和SingleTop 和SingleTask一样。
- NO_HISTORY 启动之后这个activity就消失了,不会存在于Task中。
- A 到 B A onPause B onCreate ->onStart->onResume A onStop 这也就是为什么在onPause中做一些简单操作的原因了,他会导致下一个页面的启动卡顿,白屏。实质上四次IPC:
- 当前Activity发起启动另一个Activity的请求——>ActivityManagerService
- ActivityManagerService——> 通知App暂停当前Activity
- 当前App告知已经暂停了当前的Activity——> ActivityManagerService
- ActivityManagerService ——> 通知App启动新的Activity
启动流程
- 这里不塞过多的源码 来一张经典图
activity启动流程.png
附上一篇我觉得写的比较可以得文章:https://www.jianshu.com/p/13b07beacb1f
通读几遍之后 ,大约就是c /s 互相找代理 然后IPC进行操作 -
如何走到onCreate()方法 这里还是画图来说,因为写一大段文字 ,以后自己会忘,但是看到自己画的图,以后能很快想起来这一块是什么样子:
activity的入口启动.png
网友评论