永发信息网

有人知道overridePendingTransition页面跳转动画的原理么

答案:1  悬赏:10  手机版
解决时间 2021-01-15 02:55
有人知道overridePendingTransition页面跳转动画的原理么
最佳答案
1.Activity中overridePendingTransition,显然我们都用这个的啦,看代码:ActivityManagerNative.getDefault().overridePendingTransition(
mToken, getPackageName(), enterAnim, exitAnim); 目标转向ActivityManagerNative

2.ActivityManagerNative是神马东东?看其定义:public abstract class ActivityManagerNative extends Binder implements IActivityManager
这可以知道,他是xxxxxx,我日,这才发现需要Android系统的IPC只是。
好吧,其实是这样,android本身有很多Service,这些服务从开机启动就一直在跑,比如media,比如windowmanager,这些服务对外提供接口,有些是一直到最上层都要用到的,比如Media,有些只给内部用,比如windowmanager(亲,我说的是这个service,别跟我们用的WindowManager混淆了),只给内部用和给上层用是两种不同的概念。为毛?因为内部用的话他们是同一个进程,没必要跨进程通信,也就是没ipc问题,而给外部用,就需要Ipc了。
扯远了,说说我们这个ActivityManagerNative,他就是IActivityManager的【本地】代理,ActivityManagerNative.getDefault()得到的就是IActivityManager对象。IActivityManager又是毛???没错,它是WindowManagerService的顾客。。。它里面就是跟WindowManagerService通信的啦。。。(android binder ipc神马的最讨厌了)

3.呃,回到1中说的那个ActivityManagerNative.getDefault(),上面说他是得到IActivityManager用的,IActivityManager里面的overridePendingTransition直接跟server端通话。
“Hello,啊 ,WindowManagerService,我是你的代理IActivityManager君啊,刚接到任务要改变activity的切换画面啊。"
"ok,IActivityManager,在外面风吹日晒的辛苦你了,其他的交给我吧。作为NB哄哄的Service大人,我帮你解决之。“
毫不犹豫的,WindowManagerService执行以下代码:
public void overridePendingAppTransition(String packageName,
int enterAnim, int exitAnim) {
if (mNextAppTransition != WindowManagerPolicy.TRANSIT_UNSET) {
mNextAppTransitionPackage = packageName;
mNextAppTransitionEnter = enterAnim;
mNextAppTransitionExit = exitAnim;
}
}

4. 额,这下已经到了WindowManagerService了,这个方法(overridePendingAppTransition)中mNextAppTransitionEnter等变量赋值。
这些变量在window进行切换的时候会进行处理。remove->removeWindow->removeWindowLocked->applyAnimationLocked(注意,这些说的都是WindowManagerService中的方法)
那么这个remove(具体是
public void remove(IWindow window) {
removeWindow(this, window);
})什么时候用的呢,这个,这个。。。。在ViewRoot和SurfaceView中都会调用到的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有要紫砂原矿的吗?
不吃大米饭对身体有什么坏处?
挟卷的意思
电信版iphone6s什么时候上市
我女儿今天14岁上初中2年级,我发现他经常抽烟
谈恋爱有必要交待情史吗
有没有表现物流当面的电影或纪录片?
与闻所未闻构词相同的词语有哪些?
中国公民在国外发生经济纠纷,在国内能否起诉
家具环保由国家什么部门来检查?
好听农村歌舞团开场曲
单选题地球内部各圈层中,地幔层的特点是A.平
预应力筋张拉力计算中的θ是怎么来的
FM(调频)107.9用英语怎么读?
中国第六代皇帝
推荐资讯
两节新的七号和一号干电池,哪个内阻大
广阳区中国工商银行(廊坊金源支行)地址是什么
范镇的介绍
我的根啊,在中国的歌词,急需
这个图片是某个动漫人物吗?来源何处呢?
一亩地能种植多少棵柿子苗
门里面有个岂念什么
Multiple Choice 1.The shop stored______goo
z184次列车在阜阳站和阜阳北站那个站停车停几
为什么车内悬空的蚊子能跟得上车的速度
3个4相加的和是多少?4和3相乘,积是多少?如何
靳东出了个错,为什么大家反应这么大
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?