Android 各类生命周期详解

目录

  • Android 各类生命周期详解
    • 目录
    • Activity的生命周期
      • 创建
      • 暂停
      • 恢复
      • 销毁
      • 屏幕旋转
    • Fragment的生命周期
      • 创建
      • 暂停
      • 恢复
      • 销毁
      • 屏幕旋转
    • ViewGroup生命周期
      • 创建
      • 暂停
      • 恢复
      • 销毁
      • 屏幕旋转
    • View生命周期
      • 创建
      • 暂停
      • 恢复
      • 销毁
      • 屏幕旋转
    • 综合
      • 创建
      • 暂停
      • 恢复
      • 销毁
      • 屏幕旋转
      • View Invalidate
      • View RequestLayout
      • ViewGroup Invalidate
      • ViewGroup RequestLayout
    • 总结
    • 附录
        • 测试源代码

Activity的生命周期

创建

MainActivity.onApplyThemeResource(MainActivity.java:89)MainActivity.onCreate(MainActivity.java:39)MainActivity.onAttachFragment(MainActivity.java:249)MainActivity.onWindowAttributesChanged(MainActivity.java:392)MainActivity.onWindowAttributesChanged(MainActivity.java:392)MainActivity.onWindowAttributesChanged(MainActivity.java:392)MainActivity.onWindowAttributesChanged(MainActivity.java:392)MainActivity.onCreateView(MainActivity.java:501)MainActivity.onCreateView(MainActivity.java:501)MainActivity.onCreateView(MainActivity.java:501)MainActivity.onWindowAttributesChanged(MainActivity.java:392)MainActivity.onCreateView(MainActivity.java:501)MainActivity.onCreateView(MainActivity.java:501)MainActivity.onCreateView(MainActivity.java:501)MainActivity.onCreateView(MainActivity.java:501)MainActivity.onCreateView(MainActivity.java:501)MainActivity.onCreateView(MainActivity.java:501)MainActivity.onContentChanged(MainActivity.java:519)MainActivity.onSupportContentChanged(MainActivity.java:617)MainActivity.onStart(MainActivity.java:52)MainActivity.onPostCreate(MainActivity.java:435)MainActivity.onTitleChanged(MainActivity.java:465)MainActivity.onWindowAttributesChanged(MainActivity.java:392)MainActivity.onStateNotSaved(MainActivity.java:568)MainActivity.onResume(MainActivity.java:58)MainActivity.onPostResume(MainActivity.java:441)MainActivity.onResumeFragments(MainActivity.java:447)MainActivity.onEnterAnimationComplete(MainActivity.java:285)MainActivity.onAttachedToWindow(MainActivity.java:243)MainActivity.onCreatePanelView(MainActivity.java:219)MainActivity.onCreatePanelMenu(MainActivity.java:471)MainActivity.onCreateOptionsMenu(MainActivity.java:64)MainActivity.onPreparePanel(MainActivity.java:489)MainActivity.onPrepareOptionsPanel(MainActivity.java:405)MainActivity.onPrepareOptionsMenu(MainActivity.java:71)MainActivity.onWindowFocusChanged(MainActivity.java:398)

暂停

MainActivity.onUserInteraction(MainActivity.java:386)MainActivity.onUserLeaveHint(MainActivity.java:101)MainActivity.onPause(MainActivity.java:429)MainActivity.onWindowFocusChanged(MainActivity.java:398)MainActivity.onCreateDescription(MainActivity.java:206)MainActivity.onSaveInstanceState(MainActivity.java:453)MainActivity.onStop(MainActivity.java:459)MainActivity.onTrimMemory(MainActivity.java:380)

恢复

MainActivity.onStateNotSaved(MainActivity.java:568)MainActivity.onRestart(MainActivity.java:77)MainActivity.onStart(MainActivity.java:52)MainActivity.onResume(MainActivity.java:58)MainActivity.onPostResume(MainActivity.java:441)MainActivity.onResumeFragments(MainActivity.java:447)MainActivity.onWindowFocusChanged(MainActivity.java:398)MainActivity.onEnterAnimationComplete(MainActivity.java:285)

销毁

MainActivity.onUserInteraction(MainActivity.java:386)MainActivity.onKeyDown(MainActivity.java:477)MainActivity.onUserInteraction(MainActivity.java:386)MainActivity.onKeyUp(MainActivity.java:157)MainActivity.onBackPressed(MainActivity.java:507)MainActivity.onWindowFocusChanged(MainActivity.java:398)MainActivity.onPause(MainActivity.java:429)MainActivity.onStop(MainActivity.java:459)MainActivity.onDestroy(MainActivity.java:417)MainActivity.onDetachedFromWindow(MainActivity.java:279)

屏幕旋转

MainActivity.onTrimMemory(MainActivity.java:383)MainActivity.onConfigurationChanged(MainActivity.java:516)MainActivity.onPause(MainActivity.java:432)MainActivity.onSaveInstanceState(MainActivity.java:456)MainActivity.onStop(MainActivity.java:462)MainActivity.onRetainCustomNonConfigurationInstance(MainActivity.java:546)MainActivity.onDestroy(MainActivity.java:420)MainActivity.onDetachedFromWindow(MainActivity.java:282)MainActivity.onApplyThemeResource(MainActivity.java:92)MainActivity.onCreate(MainActivity.java:40)MainActivity.onAttachFragment(MainActivity.java:252)MainActivity.onAttachFragment(MainActivity.java:264)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onContentChanged(MainActivity.java:522)MainActivity.onSupportContentChanged(MainActivity.java:620)MainActivity.onStart(MainActivity.java:55)MainActivity.onAttachFragment(MainActivity.java:264)MainActivity.onRestoreInstanceState(MainActivity.java:98)MainActivity.onPostCreate(MainActivity.java:438)MainActivity.onTitleChanged(MainActivity.java:468)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onStateNotSaved(MainActivity.java:571)MainActivity.onResume(MainActivity.java:61)MainActivity.onPostResume(MainActivity.java:444)MainActivity.onResumeFragments(MainActivity.java:450)MainActivity.onAttachedToWindow(MainActivity.java:246)MainActivity.onCreatePanelView(MainActivity.java:222)MainActivity.onCreatePanelMenu(MainActivity.java:474)MainActivity.onCreateOptionsMenu(MainActivity.java:67)MainActivity.onPreparePanel(MainActivity.java:492)MainActivity.onPrepareOptionsPanel(MainActivity.java:408)MainActivity.onPrepareOptionsMenu(MainActivity.java:74)MainActivity.onWindowFocusChanged(MainActivity.java:401)MainActivity.onTrimMemory(MainActivity.java:383)

Fragment的生命周期

创建

MyFragment.onAttach(MyFragment.java:138)MyFragment.onCreate(MyFragment.java:29)MyFragment.onGetLayoutInflater(MyFragment.java:120)MyFragment.onCreateView(MyFragment.java:54)MyFragment.onActivityCreated(MyFragment.java:126)MyFragment.onStart(MyFragment.java:210)MyFragment.onResume(MyFragment.java:204)

暂停

MyFragment.onPause(MyFragment.java:186)MyFragment.onSaveInstanceState(MyFragment.java:60)MyFragment.onStop(MyFragment.java:216)

恢复

MyFragment.onStart(MyFragment.java:210)MyFragment.onResume(MyFragment.java:204)

销毁

MyFragment.onPause(MyFragment.java:186)MyFragment.onStop(MyFragment.java:216)MyFragment.onDestroyView(MyFragment.java:162)MyFragment.onDestroy(MyFragment.java:150)MyFragment.onDetach(MyFragment.java:168)

屏幕旋转

MyFragment.onConfigurationChanged(MyFragment.java:47)MyFragment.onPause(MyFragment.java:187)MyFragment.onSaveInstanceState(MyFragment.java:61)MyFragment.onStop(MyFragment.java:217)MyFragment.onDestroyView(MyFragment.java:163)MyFragment.onDestroy(MyFragment.java:151)MyFragment.onDetach(MyFragment.java:169)MyFragment.onAttach(MyFragment.java:139)MyFragment.onCreate(MyFragment.java:29)MyFragment.onGetLayoutInflater(MyFragment.java:121)MyFragment.onCreateView(MyFragment.java:54)MyFragment.onViewCreated(MyFragment.java:223)MyFragment.onActivityCreated(MyFragment.java:127)MyFragment.onViewStateRestored(MyFragment.java:229)MyFragment.onCreateAnimation(MyFragment.java:109)MyFragment.onCreateAnimator(MyFragment.java:115)MyFragment.onAttach(MyFragment.java:139)MyFragment.onCreate(MyFragment.java:29)MyFragment.onGetLayoutInflater(MyFragment.java:121)MyFragment.onCreateView(MyFragment.java:54)MyFragment.onViewCreated(MyFragment.java:223)MyFragment.onActivityCreated(MyFragment.java:127)MyFragment.onViewStateRestored(MyFragment.java:229)MyFragment.onCreateAnimation(MyFragment.java:109)MyFragment.onCreateAnimator(MyFragment.java:115)MyFragment.onStart(MyFragment.java:211)MyFragment.onStart(MyFragment.java:211)MyFragment.onResume(MyFragment.java:205)MyFragment.onResume(MyFragment.java:205)

ViewGroup生命周期

创建

MyFrameLayout.onViewAdded(MyFrameLayout.java:462)MyFrameLayout.onFinishInflate(MyFrameLayout.java:174)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyFrameLayout.onAttachedToWindow(MyFrameLayout.java:138)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onVisibilityChanged(MyFrameLayout.java:216)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onSizeChanged(MyFrameLayout.java:210)MyFrameLayout.onLayout(MyFrameLayout.java:186)MyFrameLayout.onRequestFocusInDescendants(MyFrameLayout.java:384)MyFrameLayout.onWindowFocusChanged(MyFrameLayout.java:53)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)

暂停

MyFrameLayout.onWindowFocusChanged(MyFrameLayout.java:53)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onVisibilityChanged(MyFrameLayout.java:216)

恢复

MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onRequestFocusInDescendants(MyFrameLayout.java:384)MyFrameLayout.onVisibilityChanged(MyFrameLayout.java:216)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onWindowFocusChanged(MyFrameLayout.java:53)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)

销毁

MyFrameLayout.onWindowFocusChanged(MyFrameLayout.java:53)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onDetachedFromWindow(MyFrameLayout.java:156)

屏幕旋转

MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onDetachedFromWindow(MyFrameLayout.java:156)MyFrameLayout.onViewAdded(MyFrameLayout.java:462)MyFrameLayout.onFinishInflate(MyFrameLayout.java:174)MyFrameLayout.onViewAdded(MyFrameLayout.java:462)MyFrameLayout.onFinishInflate(MyFrameLayout.java:174)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyFrameLayout.onAttachedToWindow(MyFrameLayout.java:138)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onVisibilityChanged(MyFrameLayout.java:216)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyFrameLayout.onAttachedToWindow(MyFrameLayout.java:138)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onVisibilityChanged(MyFrameLayout.java:216)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onSizeChanged(MyFrameLayout.java:210)MyFrameLayout.onLayout(MyFrameLayout.java:186)MyFrameLayout.onSizeChanged(MyFrameLayout.java:210)MyFrameLayout.onLayout(MyFrameLayout.java:186)MyFrameLayout.onRequestFocusInDescendants(MyFrameLayout.java:384)MyFrameLayout.onRequestFocusInDescendants(MyFrameLayout.java:384)MyFrameLayout.onWindowFocusChanged(MyFrameLayout.java:53)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyFrameLayout.onWindowFocusChanged(MyFrameLayout.java:53)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)

View生命周期

创建

MyView.onFinishInflate(MyView.java:170)MyView.onRtlPropertiesChanged(MyView.java:344)MyView.onRtlPropertiesChanged(MyView.java:344)MyView.onAttachedToWindow(MyView.java:134)MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onVisibilityChanged(MyView.java:212)MyView.onCreateDrawableState(MyView.java:109)MyView.onMeasure(MyView.java:188)MyView.onMeasure(MyView.java:188)MyView.onMeasure(MyView.java:188)MyView.onMeasure(MyView.java:188)MyView.onSizeChanged(MyView.java:206)MyView.onLayout(MyView.java:182)MyView.onWindowFocusChanged(MyView.java:49)MyView.onCreateDrawableState(MyView.java:109)MyView.onDraw(MyView.java:164)MyView.onDrawForeground(MyView.java:278)

暂停

MyView.onWindowFocusChanged(MyView.java:49)MyView.onCreateDrawableState(MyView.java:109)MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onVisibilityChanged(MyView.java:212)

恢复

MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onVisibilityChanged(MyView.java:212)MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onWindowFocusChanged(MyView.java:49)MyView.onCreateDrawableState(MyView.java:109)MyView.onDraw(MyView.java:164)MyView.onDrawForeground(MyView.java:278)

销毁

MyView.onWindowFocusChanged(MyView.java:49)MyView.onCreateDrawableState(MyView.java:109)MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onDetachedFromWindow(MyView.java:152)

屏幕旋转

MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onDetachedFromWindow(MyView.java:152)MyView.onFinishInflate(MyView.java:170)MyView.onFinishInflate(MyView.java:170)MyView.onRtlPropertiesChanged(MyView.java:344)MyView.onRtlPropertiesChanged(MyView.java:344)MyView.onRtlPropertiesChanged(MyView.java:344)MyView.onRtlPropertiesChanged(MyView.java:344)MyView.onAttachedToWindow(MyView.java:134)MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onVisibilityChanged(MyView.java:212)MyView.onCreateDrawableState(MyView.java:109)MyView.onAttachedToWindow(MyView.java:134)MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onVisibilityChanged(MyView.java:212)MyView.onCreateDrawableState(MyView.java:109)MyView.onMeasure(MyView.java:188)MyView.onMeasure(MyView.java:188)MyView.onMeasure(MyView.java:188)MyView.onMeasure(MyView.java:188)MyView.onMeasure(MyView.java:188)MyView.onMeasure(MyView.java:188)MyView.onMeasure(MyView.java:188)MyView.onMeasure(MyView.java:188)MyView.onMeasure(MyView.java:188)MyView.onMeasure(MyView.java:188)MyView.onMeasure(MyView.java:188)MyView.onMeasure(MyView.java:188)MyView.onSizeChanged(MyView.java:206)MyView.onLayout(MyView.java:182)MyView.onSizeChanged(MyView.java:206)MyView.onLayout(MyView.java:182)MyView.onWindowFocusChanged(MyView.java:49)MyView.onCreateDrawableState(MyView.java:109)MyView.onWindowFocusChanged(MyView.java:49)MyView.onCreateDrawableState(MyView.java:109)MyView.onDraw(MyView.java:164)MyView.onDrawForeground(MyView.java:278)MyView.onDraw(MyView.java:164)MyView.onDrawForeground(MyView.java:278)

综合

创建

MainActivity.onApplyThemeResource(MainActivity.java:92)MainActivity.onCreate(MainActivity.java:40)MainActivity.onAttachFragment(MainActivity.java:252)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onContentChanged(MainActivity.java:522)MainActivity.onSupportContentChanged(MainActivity.java:620)MainActivity.onStart(MainActivity.java:55)MyFragment.onAttach(MyFragment.java:139)MainActivity.onAttachFragment(MainActivity.java:264)MyFragment.onCreate(MyFragment.java:29)MyFragment.onGetLayoutInflater(MyFragment.java:121)MyFragment.onCreateView(MyFragment.java:54)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MyView.onFinishInflate(MyView.java:170)MyFrameLayout.onViewAdded(MyFrameLayout.java:462)MyFrameLayout.onFinishInflate(MyFrameLayout.java:174)MyFragment.onViewCreated(MyFragment.java:223)MyFragment.onActivityCreated(MyFragment.java:127)MyFragment.onViewStateRestored(MyFragment.java:229)MyFragment.onCreateAnimation(MyFragment.java:109)MyFragment.onCreateAnimator(MyFragment.java:115)MyFragment.onStart(MyFragment.java:211)MainActivity.onPostCreate(MainActivity.java:438)MainActivity.onTitleChanged(MainActivity.java:468)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onStateNotSaved(MainActivity.java:571)MainActivity.onResume(MainActivity.java:61)MainActivity.onPostResume(MainActivity.java:444)MainActivity.onResumeFragments(MainActivity.java:450)MyFragment.onResume(MyFragment.java:205)MainActivity.onEnterAnimationComplete(MainActivity.java:288)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyView.onRtlPropertiesChanged(MyView.java:344)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyView.onRtlPropertiesChanged(MyView.java:344)MainActivity.onAttachedToWindow(MainActivity.java:246)MyFrameLayout.onAttachedToWindow(MyFrameLayout.java:138)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onVisibilityChanged(MyFrameLayout.java:216)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyView.onAttachedToWindow(MyView.java:134)MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onVisibilityChanged(MyView.java:212)MyView.onCreateDrawableState(MyView.java:109)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onSizeChanged(MyFrameLayout.java:210)MyFrameLayout.onLayout(MyFrameLayout.java:186)MyView.onSizeChanged(MyView.java:206)MyView.onLayout(MyView.java:182)MyFrameLayout.onRequestFocusInDescendants(MyFrameLayout.java:384)MainActivity.onCreatePanelView(MainActivity.java:222)MainActivity.onCreatePanelMenu(MainActivity.java:474)MainActivity.onCreateOptionsMenu(MainActivity.java:67)MainActivity.onPreparePanel(MainActivity.java:492)MainActivity.onPrepareOptionsPanel(MainActivity.java:408)MainActivity.onPrepareOptionsMenu(MainActivity.java:74)MainActivity.onWindowFocusChanged(MainActivity.java:401)MyFrameLayout.onWindowFocusChanged(MyFrameLayout.java:53)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyView.onWindowFocusChanged(MyView.java:49)MyView.onCreateDrawableState(MyView.java:109)MyView.onDraw(MyView.java:164)MyView.onDrawForeground(MyView.java:278)

暂停

MainActivity.onUserInteraction(MainActivity.java:389)MainActivity.onUserLeaveHint(MainActivity.java:104)MainActivity.onPause(MainActivity.java:432)MyFragment.onPause(MyFragment.java:187)MainActivity.onWindowFocusChanged(MainActivity.java:401)MyFrameLayout.onWindowFocusChanged(MyFrameLayout.java:53)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyView.onWindowFocusChanged(MyView.java:49)MyView.onCreateDrawableState(MyView.java:109)MainActivity.onCreateDescription(MainActivity.java:209)MainActivity.onSaveInstanceState(MainActivity.java:456)MyFragment.onSaveInstanceState(MyFragment.java:61)MainActivity.onStop(MainActivity.java:462)MyFragment.onStop(MyFragment.java:217)MyFrameLayout.onVisibilityChanged(MyFrameLayout.java:216)MyView.onVisibilityChanged(MyView.java:212)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyView.onVisibilityAggregated(MyView.java:362)MainActivity.onTrimMemory(MainActivity.java:383)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyView.onWindowVisibilityChanged(MyView.java:218)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyView.onVisibilityAggregated(MyView.java:362)

恢复

MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyView.onWindowVisibilityChanged(MyView.java:218)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyView.onVisibilityAggregated(MyView.java:362)MainActivity.onStateNotSaved(MainActivity.java:571)MainActivity.onRestart(MainActivity.java:80)MainActivity.onStart(MainActivity.java:55)MyFragment.onStart(MyFragment.java:211)MainActivity.onResume(MainActivity.java:61)MainActivity.onPostResume(MainActivity.java:444)MainActivity.onResumeFragments(MainActivity.java:450)MyFragment.onResume(MyFragment.java:205)MyFrameLayout.onRequestFocusInDescendants(MyFrameLayout.java:384)MyFrameLayout.onVisibilityChanged(MyFrameLayout.java:216)MyView.onVisibilityChanged(MyView.java:212)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyView.onWindowVisibilityChanged(MyView.java:218)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyView.onVisibilityAggregated(MyView.java:362)MainActivity.onWindowFocusChanged(MainActivity.java:401)MyFrameLayout.onWindowFocusChanged(MyFrameLayout.java:53)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyView.onWindowFocusChanged(MyView.java:49)MyView.onCreateDrawableState(MyView.java:109)MyView.onDraw(MyView.java:164)MyView.onDrawForeground(MyView.java:278)MainActivity.onEnterAnimationComplete(MainActivity.java:288)

销毁

MainActivity.onUserInteraction(MainActivity.java:389)MainActivity.onKeyDown(MainActivity.java:480)MainActivity.onUserInteraction(MainActivity.java:389)MainActivity.onKeyUp(MainActivity.java:160)MainActivity.onBackPressed(MainActivity.java:510)MainActivity.onPause(MainActivity.java:432)MyFragment.onPause(MyFragment.java:187)MainActivity.onWindowFocusChanged(MainActivity.java:401)MyFrameLayout.onWindowFocusChanged(MyFrameLayout.java:53)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyView.onWindowFocusChanged(MyView.java:49)MyView.onCreateDrawableState(MyView.java:109)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyView.onWindowVisibilityChanged(MyView.java:218)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyView.onVisibilityAggregated(MyView.java:362)MainActivity.onStop(MainActivity.java:462)MyFragment.onStop(MyFragment.java:217)MainActivity.onDestroy(MainActivity.java:420)MyFragment.onDestroyView(MyFragment.java:163)MyView.onDetachedFromWindow(MyView.java:152)MyFrameLayout.onDetachedFromWindow(MyFrameLayout.java:156)MyFragment.onDestroy(MyFragment.java:151)MyFragment.onDetach(MyFragment.java:169)MainActivity.onDetachedFromWindow(MainActivity.java:282)

屏幕旋转

MainActivity.onConfigurationChanged(MainActivity.java:516)MyFragment.onConfigurationChanged(MyFragment.java:47)MyFragment.onConfigurationChanged(MyFragment.java:47)MyFragment.onConfigurationChanged(MyFragment.java:47)MainActivity.onPause(MainActivity.java:432)MyFragment.onPause(MyFragment.java:187)MyFragment.onPause(MyFragment.java:187)MyFragment.onPause(MyFragment.java:187)MainActivity.onSaveInstanceState(MainActivity.java:456)MyFragment.onSaveInstanceState(MyFragment.java:61)MyFragment.onSaveInstanceState(MyFragment.java:61)MyFragment.onSaveInstanceState(MyFragment.java:61)MainActivity.onStop(MainActivity.java:462)MyFragment.onStop(MyFragment.java:217)MyFragment.onStop(MyFragment.java:217)MyFragment.onStop(MyFragment.java:217)MainActivity.onRetainCustomNonConfigurationInstance(MainActivity.java:546)MainActivity.onDestroy(MainActivity.java:420)MyFragment.onDestroyView(MyFragment.java:163)MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onDetachedFromWindow(MyView.java:152)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onDetachedFromWindow(MyFrameLayout.java:156)MyFragment.onDestroy(MyFragment.java:151)MyFragment.onDetach(MyFragment.java:169)MyFragment.onDestroyView(MyFragment.java:163)MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onDetachedFromWindow(MyView.java:152)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onDetachedFromWindow(MyFrameLayout.java:156)MyFragment.onDestroy(MyFragment.java:151)MyFragment.onDetach(MyFragment.java:169)MyFragment.onDestroyView(MyFragment.java:163)MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onDetachedFromWindow(MyView.java:152)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onDetachedFromWindow(MyFrameLayout.java:156)MyFragment.onDestroy(MyFragment.java:151)MyFragment.onDetach(MyFragment.java:169)MainActivity.onDetachedFromWindow(MainActivity.java:282)MainActivity.onApplyThemeResource(MainActivity.java:92)MainActivity.onCreate(MainActivity.java:40)MainActivity.onAttachFragment(MainActivity.java:252)MyFragment.onAttach(MyFragment.java:139)MainActivity.onAttachFragment(MainActivity.java:264)MyFragment.onCreate(MyFragment.java:29)MyFragment.onAttach(MyFragment.java:139)MainActivity.onAttachFragment(MainActivity.java:264)MyFragment.onCreate(MyFragment.java:29)MyFragment.onAttach(MyFragment.java:139)MainActivity.onAttachFragment(MainActivity.java:264)MyFragment.onCreate(MyFragment.java:29)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onContentChanged(MainActivity.java:522)MainActivity.onSupportContentChanged(MainActivity.java:620)MainActivity.onStart(MainActivity.java:55)MyFragment.onGetLayoutInflater(MyFragment.java:121)MyFragment.onCreateView(MyFragment.java:54)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MyView.onFinishInflate(MyView.java:170)MyFrameLayout.onViewAdded(MyFrameLayout.java:462)MyFrameLayout.onFinishInflate(MyFrameLayout.java:174)MyFragment.onViewCreated(MyFragment.java:223)MyFragment.onActivityCreated(MyFragment.java:127)MyFragment.onViewStateRestored(MyFragment.java:229)MyFragment.onCreateAnimation(MyFragment.java:109)MyFragment.onCreateAnimator(MyFragment.java:115)MyFragment.onGetLayoutInflater(MyFragment.java:121)MyFragment.onCreateView(MyFragment.java:54)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MyView.onFinishInflate(MyView.java:170)MyFrameLayout.onViewAdded(MyFrameLayout.java:462)MyFrameLayout.onFinishInflate(MyFrameLayout.java:174)MyFragment.onViewCreated(MyFragment.java:223)MyFragment.onActivityCreated(MyFragment.java:127)MyFragment.onViewStateRestored(MyFragment.java:229)MyFragment.onCreateAnimation(MyFragment.java:109)MyFragment.onCreateAnimator(MyFragment.java:115)MyFragment.onGetLayoutInflater(MyFragment.java:121)MyFragment.onCreateView(MyFragment.java:54)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MyView.onFinishInflate(MyView.java:170)MyFrameLayout.onViewAdded(MyFrameLayout.java:462)MyFrameLayout.onFinishInflate(MyFrameLayout.java:174)MyFragment.onViewCreated(MyFragment.java:223)MyFragment.onActivityCreated(MyFragment.java:127)MyFragment.onViewStateRestored(MyFragment.java:229)MyFragment.onCreateAnimation(MyFragment.java:109)MyFragment.onCreateAnimator(MyFragment.java:115)MyFragment.onAttach(MyFragment.java:139)MainActivity.onAttachFragment(MainActivity.java:264)MyFragment.onCreate(MyFragment.java:29)MyFragment.onGetLayoutInflater(MyFragment.java:121)MyFragment.onCreateView(MyFragment.java:54)MainActivity.onCreateView(MainActivity.java:504)MainActivity.onCreateView(MainActivity.java:504)MyView.onFinishInflate(MyView.java:170)MyFrameLayout.onViewAdded(MyFrameLayout.java:462)MyFrameLayout.onFinishInflate(MyFrameLayout.java:174)MyFragment.onViewCreated(MyFragment.java:223)MyFragment.onActivityCreated(MyFragment.java:127)MyFragment.onViewStateRestored(MyFragment.java:229)MyFragment.onCreateAnimation(MyFragment.java:109)MyFragment.onCreateAnimator(MyFragment.java:115)MyFragment.onStart(MyFragment.java:211)MyFragment.onStart(MyFragment.java:211)MyFragment.onStart(MyFragment.java:211)MyFragment.onStart(MyFragment.java:211)MainActivity.onRestoreInstanceState(MainActivity.java:98)MainActivity.onPostCreate(MainActivity.java:438)MainActivity.onTitleChanged(MainActivity.java:468)MainActivity.onWindowAttributesChanged(MainActivity.java:395)MainActivity.onStateNotSaved(MainActivity.java:571)MainActivity.onResume(MainActivity.java:61)MainActivity.onPostResume(MainActivity.java:444)MainActivity.onResumeFragments(MainActivity.java:450)MyFragment.onResume(MyFragment.java:205)MyFragment.onResume(MyFragment.java:205)MyFragment.onResume(MyFragment.java:205)MyFragment.onResume(MyFragment.java:205)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyView.onRtlPropertiesChanged(MyView.java:344)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyView.onRtlPropertiesChanged(MyView.java:344)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyView.onRtlPropertiesChanged(MyView.java:344)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyView.onRtlPropertiesChanged(MyView.java:344)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyView.onRtlPropertiesChanged(MyView.java:344)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyView.onRtlPropertiesChanged(MyView.java:344)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyView.onRtlPropertiesChanged(MyView.java:344)MyFrameLayout.onRtlPropertiesChanged(MyFrameLayout.java:348)MyView.onRtlPropertiesChanged(MyView.java:344)MainActivity.onAttachedToWindow(MainActivity.java:246)MyFrameLayout.onAttachedToWindow(MyFrameLayout.java:138)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onVisibilityChanged(MyFrameLayout.java:216)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyView.onAttachedToWindow(MyView.java:134)MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onVisibilityChanged(MyView.java:212)MyView.onCreateDrawableState(MyView.java:109)MyFrameLayout.onAttachedToWindow(MyFrameLayout.java:138)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onVisibilityChanged(MyFrameLayout.java:216)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyView.onAttachedToWindow(MyView.java:134)MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onVisibilityChanged(MyView.java:212)MyView.onCreateDrawableState(MyView.java:109)MyFrameLayout.onAttachedToWindow(MyFrameLayout.java:138)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onVisibilityChanged(MyFrameLayout.java:216)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyView.onAttachedToWindow(MyView.java:134)MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onVisibilityChanged(MyView.java:212)MyView.onCreateDrawableState(MyView.java:109)MyFrameLayout.onAttachedToWindow(MyFrameLayout.java:138)MyFrameLayout.onWindowVisibilityChanged(MyFrameLayout.java:222)MyFrameLayout.onVisibilityAggregated(MyFrameLayout.java:366)MyFrameLayout.onVisibilityChanged(MyFrameLayout.java:216)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyView.onAttachedToWindow(MyView.java:134)MyView.onWindowVisibilityChanged(MyView.java:218)MyView.onVisibilityAggregated(MyView.java:362)MyView.onVisibilityChanged(MyView.java:212)MyView.onCreateDrawableState(MyView.java:109)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onSizeChanged(MyFrameLayout.java:210)MyFrameLayout.onLayout(MyFrameLayout.java:186)MyView.onSizeChanged(MyView.java:206)MyView.onLayout(MyView.java:182)MyFrameLayout.onSizeChanged(MyFrameLayout.java:210)MyFrameLayout.onLayout(MyFrameLayout.java:186)MyView.onSizeChanged(MyView.java:206)MyView.onLayout(MyView.java:182)MyFrameLayout.onSizeChanged(MyFrameLayout.java:210)MyFrameLayout.onLayout(MyFrameLayout.java:186)MyView.onSizeChanged(MyView.java:206)MyView.onLayout(MyView.java:182)MyFrameLayout.onSizeChanged(MyFrameLayout.java:210)MyFrameLayout.onLayout(MyFrameLayout.java:186)MyView.onSizeChanged(MyView.java:206)MyView.onLayout(MyView.java:182)MyFrameLayout.onRequestFocusInDescendants(MyFrameLayout.java:384)MyFrameLayout.onRequestFocusInDescendants(MyFrameLayout.java:384)MyFrameLayout.onRequestFocusInDescendants(MyFrameLayout.java:384)MyFrameLayout.onRequestFocusInDescendants(MyFrameLayout.java:384)MainActivity.onCreatePanelView(MainActivity.java:222)MainActivity.onCreatePanelMenu(MainActivity.java:474)MainActivity.onCreateOptionsMenu(MainActivity.java:67)MainActivity.onPreparePanel(MainActivity.java:492)MainActivity.onPrepareOptionsPanel(MainActivity.java:408)MainActivity.onPrepareOptionsMenu(MainActivity.java:74)MainActivity.onWindowFocusChanged(MainActivity.java:401)MyFrameLayout.onWindowFocusChanged(MyFrameLayout.java:53)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyView.onWindowFocusChanged(MyView.java:49)MyView.onCreateDrawableState(MyView.java:109)MyFrameLayout.onWindowFocusChanged(MyFrameLayout.java:53)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyView.onWindowFocusChanged(MyView.java:49)MyView.onCreateDrawableState(MyView.java:109)MyFrameLayout.onWindowFocusChanged(MyFrameLayout.java:53)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyView.onWindowFocusChanged(MyView.java:49)MyView.onCreateDrawableState(MyView.java:109)MyFrameLayout.onWindowFocusChanged(MyFrameLayout.java:53)MyFrameLayout.onCreateDrawableState(MyFrameLayout.java:113)MyView.onWindowFocusChanged(MyView.java:49)MyView.onCreateDrawableState(MyView.java:109)MyView.onDraw(MyView.java:164)MyView.onDrawForeground(MyView.java:278)MyView.onDraw(MyView.java:164)MyView.onDrawForeground(MyView.java:278)MyView.onDraw(MyView.java:164)MyView.onDrawForeground(MyView.java:278)MyView.onDraw(MyView.java:164)MyView.onDrawForeground(MyView.java:278)

View Invalidate

MyView.onDraw(MyView.java:164)MyView.onDrawForeground(MyView.java:278)

View RequestLayout

MyView.onMeasure(MyView.java:188)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyView.onMeasure(MyView.java:188)MyFrameLayout.onLayout(MyFrameLayout.java:186)MyView.onLayout(MyView.java:182MyView.onDraw(MyView.java:164)MyView.onDrawForeground(MyView.java:278)

ViewGroup Invalidate

  • 无背景等属性时无日志

ViewGroup RequestLayout

MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onMeasure(MyFrameLayout.java:192)MyFrameLayout.onLayout(MyFrameLayout.java:186)MyView.onMeasure(MyView.java:188)MyView.onLayout(MyView.java:182)

总结

  • 销毁的日志有一些KeyEvent的触发是由于点了Back键,希望不会造成误解
  • 在日志中可以发现onWindowFocusChanged这个方法是显示前的最后一个方法,可以重写这个方法,加入一些需要显示时触发的代码
  • ViewGroup和View的生命周期大部分都相同,但是仔细看的话会发现ViewGroup的onDraw方法没有触发,这是一个坑,在ViewGroup没有设置背景等属性时onDraw是不会触发的,故而不要轻易在ViewGroup的onDraw中添加代码,可以选择在ViewGroup的dispatchDraw中添加作为代替

附录

测试源代码

更多相关文章

  1. android:屏幕自适应(转)
  2. Android获取机器显示屏幕的分辨率
  3. Android 通过按键旋转屏幕
  4. 【Fragment】 Android Fragment生命周期详解(图文)
  5. android屏幕常亮
  6. Android的Activity屏幕切换动画(一)-左右滑动切换

随机推荐

  1. 隐藏在SQLServer 字段中的超诡异字符解决
  2. sql 服务器知识
  3. SQL语法 分隔符理解小结
  4. sql中all,any,some用法
  5. 最常用的SQL语句
  6. SqlServer 实用操作小技巧集合第1/2页
  7. MSSQL 计算两个日期相差的工作天数的语句
  8. MSSQL 生成日期列表代码
  9. 用sql获取某字符串中的数字部分的语句
  10. SQL 判断字段类型语句