Activity的生命周期在面试中是高频问题,今天抽空总结一下:
1. 下拉状态栏
启动Activity:
05-02 10:26:57.936 3339-3339/wallet.ellison.com.blogdemo E/StatusBarActivity: onCreate =============
05-02 10:26:57.936 3339-3339/wallet.ellison.com.blogdemo E/StatusBarActivity: onStart =============
05-02 10:26:57.936 3339-3339/wallet.ellison.com.blogdemo E/StatusBarActivity: onResume =============
05-02 10:26:57.978 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:26:57.982 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:26:58.016 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:26:58.034 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:26:58.050 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:26:58.064 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:26:58.071 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:26:58.072 3339-3354/wallet.ellison.com.blogdemo E/Surface: getSlotFromBufferLocked: unknown buffer: 0xae689a00
下拉状态栏之后生命周期 没有任何变化 :
05-02 10:26:57.936 3339-3339/wallet.ellison.com.blogdemo E/StatusBarActivity: onCreate =============
05-02 10:26:57.936 3339-3339/wallet.ellison.com.blogdemo E/StatusBarActivity: onStart =============
05-02 10:26:57.936 3339-3339/wallet.ellison.com.blogdemo E/StatusBarActivity: onResume =============
05-02 10:26:57.978 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:26:57.982 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:26:58.016 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:26:58.034 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:26:58.050 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:26:58.064 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:26:58.071 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:26:58.072 3339-3354/wallet.ellison.com.blogdemo E/Surface: getSlotFromBufferLocked: unknown buffer: 0xae689a00
05-02 10:26:58.078 3339-3354/wallet.ellison.com.blogdemo D/OpenGLRenderer: endAllStagingAnimators on 0xb2acac00 (RippleDrawable) with handle 0xae592a80
[ 05-02 10:26:59.914 2929: 3069 D/ ]
HostConnection::get() New Host Connection established 0xae590bc0, tid 3069
Github Demo :
2. 弹出 Dialog 生命周期变化
启动Activity
05-02 10:30:23.707 3339-3339/wallet.ellison.com.blogdemo E/DialogActivity: onCreate =============
05-02 10:30:23.708 3339-3339/wallet.ellison.com.blogdemo E/DialogActivity: onStart =============
05-02 10:30:23.708 3339-3339/wallet.ellison.com.blogdemo E/DialogActivity: onResume =============
05-02 10:30:23.757 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:30:23.759 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:30:23.788 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:30:23.799 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:30:23.823 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:30:23.839 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:30:23.849 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:30:23.849 3339-3354/wallet.ellison.com.blogdemo E/Surface: getSlotFromBufferLocked: unknown buffer: 0xae689500
05-02 10:30:23.856 3339-3354/wallet.ellison.com.blogdemo D/OpenGLRenderer: endAllStagingAnimators on 0xb2acaf80 (RippleDrawable) with handle 0xae592a10
弹出Dialog 没有任何变化
05-02 10:32:08.410 3339-3339/wallet.ellison.com.blogdemo E/DialogActivity: onCreate =============
05-02 10:32:08.411 3339-3339/wallet.ellison.com.blogdemo E/DialogActivity: onStart =============
05-02 10:32:08.411 3339-3339/wallet.ellison.com.blogdemo E/DialogActivity: onResume =============
05-02 10:32:08.451 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:32:08.453 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:32:08.490 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:32:08.507 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:32:08.523 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:32:08.537 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:32:08.551 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:32:08.552 3339-3354/wallet.ellison.com.blogdemo E/Surface: getSlotFromBufferLocked: unknown buffer: 0xae689960
05-02 10:32:08.560 3339-3354/wallet.ellison.com.blogdemo D/OpenGLRenderer: endAllStagingAnimators on 0xb2acaf80 (RippleDrawable) with handle 0xae592b40
05-02 10:32:10.729 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:32:10.886 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:32:10.890 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:32:10.894 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
05-02 10:32:10.900 3339-3354/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae592650)
Github Demo :
3. 弹出 AlertDialog 生命周期变化
启动Activity :
05-02 10:39:05.502 8203-8203/wallet.ellison.com.blogdemo E/DialogActivity: onCreate =============
05-02 10:39:05.503 8203-8203/wallet.ellison.com.blogdemo E/DialogActivity: onStart =============
05-02 10:39:05.503 8203-8203/wallet.ellison.com.blogdemo E/DialogActivity: onResume =============
05-02 10:39:05.548 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:39:05.557 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:39:05.585 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:39:05.604 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:39:05.619 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:39:05.631 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:39:05.643 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:39:05.644 8203-8218/wallet.ellison.com.blogdemo E/Surface: getSlotFromBufferLocked: unknown buffer: 0xae6c95a0
05-02 10:39:05.650 8203-8218/wallet.ellison.com.blogdemo D/OpenGLRenderer: endAllStagingAnimators on 0xae88af80 (RippleDrawable) with handle 0xae592b90
调用AlertDialog:
生命周期无变化:
05-02 10:39:05.502 8203-8203/wallet.ellison.com.blogdemo E/DialogActivity: onCreate =============
05-02 10:39:05.503 8203-8203/wallet.ellison.com.blogdemo E/DialogActivity: onStart =============
05-02 10:39:05.503 8203-8203/wallet.ellison.com.blogdemo E/DialogActivity: onResume =============
05-02 10:39:05.548 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:39:05.557 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:39:05.585 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:39:05.604 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:39:05.619 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:39:05.631 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:39:05.643 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:39:05.644 8203-8218/wallet.ellison.com.blogdemo E/Surface: getSlotFromBufferLocked: unknown buffer: 0xae6c95a0
05-02 10:39:05.650 8203-8218/wallet.ellison.com.blogdemo D/OpenGLRenderer: endAllStagingAnimators on 0xae88af80 (RippleDrawable) with handle 0xae592b90
05-02 10:40:15.878 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:40:15.998 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:40:16.008 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:40:16.012 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:40:16.019 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:40:16.025 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:40:16.030 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
05-02 10:40:17.578 8203-8218/wallet.ellison.com.blogdemo D/EGL_emulation: eglMakeCurrent: 0xae5934e0: ver 3 1 (tinfo 0xae5926f0)
Github Demo :