Android 开发艺术探究-阅读笔记一 Activity 篇

xiaoxiao2021-02-28  71

1.正常情况下A  页面跳转到B 页面 调用

08-06 17:41:48.180 25083-25083/? I/gsc: onCreate 08-06 17:41:48.190 25083-25083/? I/gsc: onStart() 08-06 17:41:48.190 25083-25083/? I/gsc: onResume() 08-06 17:41:50.710 25083-25083/com.org.gsc.testactdemo I/gsc: onPause() 08-06 17:41:50.730 25083-25083/com.org.gsc.testactdemo I/gsc: OnePage:onCreate 08-06 17:41:50.730 25083-25083/com.org.gsc.testactdemo I/gsc: OnePage:onStart()  08-06 17:41:50.750 25083-25083/com.org.gsc.testactdemo I/gsc: OnePage: onResume()  08-06 17:41:51.180 25083-25083/com.org.gsc.testactdemo I/gsc: onStop()

2.B 页面为透明页面时调用:

08-06 17:43:43.410 26988-26988/? I/gsc: onCreate 08-06 17:43:43.410 26988-26988/? I/gsc: onStart() 08-06 17:43:43.410 26988-26988/? I/gsc: onResume() 08-06 17:43:46.310 26988-26988/com.org.gsc.testactdemo I/gsc: onPause() 08-06 17:43:46.320 26988-26988/com.org.gsc.testactdemo I/gsc: OnePage:onCreate 08-06 17:43:46.370 26988-26988/com.org.gsc.testactdemo I/gsc: OnePage:onStart()  08-06 17:43:46.370 26988-26988/com.org.gsc.testactdemo I/gsc: OnePage: onResume() 

总结 B页面为透明主题时,A 页面 不在调用他自己的stop 方法:

为啥不调用A 页面的 stop 表面解释为,A 页面被没有消失,在B 页面的下层

下面从源码角度分析:

看一下 onstop  方法:

protected void onStop() { if (DEBUG_LIFECYCLE) Slog.v(TAG, "onStop " + this); if (mActionBar != null) mActionBar.setShowHideAnimationEnabled(false); mActivityTransitionState.onStop();主要在这里就此方法深入其中 getApplication().dispatchActivityStopped(this); mTranslucentCallback = null; mCalled = true; }

 public void onstop() { 222         restoreExitedViews();// 这句话是关键,只做了保存显示View 的 223         if (mEnterTransitionCoordinator != null) { 224             mEnterTransitionCoordinator.stop(); 225             mEnterTransitionCoordinator = null; 226         } 227         if (mReturnExitCoordinator != null) { 228             mReturnExitCoordinator.stop(); 229             mReturnExitCoordinator = null; 230         } 231     } ## 总结: 应为跳到透明主题,页面别没有消失,所以也不会调用Onstop 方法

转载请注明原文地址: https://www.6miu.com/read-56092.html

最新回复(0)