-
ActivityManagerNative.getDefault().activityDestroyed(token);通知AMS移除Activity
查看全部 -
removeViewLocked方法通过ViewRootImpl对象得到关联的View,并使View与当前ViewRootImpl解除关联然后将View添加到mDyingView集合(待销毁的View集合)中
查看全部 -
每个ViewRootImpl都会与一个View关联
查看全部 -
没Activity都会创建一个ViewRootImpl对象,每个VIewRootImpl对象都保存在mRoots集合中
查看全部 -
WindowManagerGlobal 的removeView方法解析
查看全部 -
WindowManagerGlobal mGlobal = WindowManagerGlobal.getInstance();
...
mGlobal.removeView(view,false)
查看全部 -
WindowManagerImpl实际上调用的内部的WindowManagerGlobal成员变量 mGlobal的removeView(view ,false)移除方法
查看全部 -
wm.removeViewImmediate(v)方法解析
WindowManager是个接口,wm.removeViewImmediate(v)方法实际上是调用的WindowManagerImpl这给类(WindowManagerImpl为WindowManager接口的实现类)的方法
查看全部 -
wm.removeViewImmediate(v); //v = r.activity.mDecor
查看全部 -
通过mInstrumentation.callActivityOnDestroy(r.activity)方法调用Activity中的onDestroy方法,执行一些用户编写的收尾代码等
查看全部 -
Activity的performDestroyActivity方法源码解读
查看全部 -
通过ActivityManagerNative.getDefault().activityDestroyed(token)告诉ActivityManagerServer该Activity被销毁
查看全部 -
handleDestroyActivity方法中
通过WindowManager(ViewRootImpl)对DecorView进行移除,并将mDecor赋值null
查看全部 -
首先回调自己的performDestoryActivity
查看全部 -
handleDestroyActivity 源码解读
查看全部 -
updateVisibility方法源码解析
View v = r.activity.mDecor;
....
v.setVisibility(View.INVISIBLE);
查看全部 -
updateVisibility方法更新Activity的可见状态
查看全部 -
执行自己的performStopActivityInner方法
查看全部 -
handleStopActivity方法解析
查看全部 -
通过ActivityManagerNative.getDefault().activityResumed(token);
通知远程的ActivityManagerServer当前Activity为可见状态
查看全部 -
当Activity的onResume 执行后,程序继续向后执行直到执行了Activity的makeVisible()时View才真正的显示到了屏幕上
mDecor.setVisibility(View.VISIBLE);
查看全部 -
checkThread()检查更新View的操作所在的线程
查看全部 -
ViewRoorImpl 的invalidateChildInParent方法重绘View
查看全部 -
View的invalidate方法说明
查看全部 -
每个View都有一个Parent,此Parent就是ViewRootImpl,ViewRootImpl负责View的绘制
查看全部 -
ViewRootImpl 的setView方法实现与要显示的View进行关联
查看全部 -
W extends IWindow.Stub
W的对象实现了与远程ActivityManagerServer的交互
查看全部
举报