2 qq 29628249 qq_29628249 于 2016.05.06 09:10 提问

android intent是如何打开activity的

android是如何通过intent打开activity的 具体原理是什么 怎么实现的 求大神解答

8个回答

u010386612
u010386612   2016.05.06 09:41
已采纳

这是很底层的东西了,原理还真不知道。
不过Android使用任务栈保存activity的,启动的时候其实就是将一个activity实例化添加到栈,屏幕显示的就是栈顶的activity。
找activity.class的话,和找其他类并没有区别啊,遍历dex文件呗……

CSDNXIAOD
CSDNXIAOD   2016.05.06 09:22

Android之Intent和Activity
Intent打开Android提供的一些标准Activity
Android activity launchMode与Intent.Flag关系
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

baiyuliang2013
baiyuliang2013   2016.05.06 09:28

startActivity

baiyuliang2013
baiyuliang2013   2016.05.06 09:29

startActivity。。。。。。。。。。。。。。。

baiyuliang2013
baiyuliang2013   2016.05.06 09:30

用startActivity就可以了

qq_29628249
qq_29628249   2016.05.06 09:34

我知道是用startactivity 我是想问一下 他是怎么开启的 原理是什么 关键是怎么找到 apk中编译的activity的

u010386612
u010386612   2016.05.06 09:42

什么垃圾csdn,一条回复给我显示三遍

qq_29628249
qq_29628249   2016.05.06 09:57

我是想知道 通过startactivity中的intent 是如何找到这个activity的 那如果这个activity我把它放在sd卡中 那intent可以找到吗

u010386612
u010386612 不行吧。除非将activity.class打包成dex,然后用classloader加载
一年多之前 回复
qq_29628249
qq_29628249 回复AItsuki: 是的,但是activity在sd卡中打开的话就用反射加载调用oncreate方法 其实startactivity也是通过反射开启activity的 所以我的疑问就是怎么用startactivity中intent调用到sd卡中的activity 这样可行吗
一年多之前 回复
u010386612
u010386612 我说的classloader是应用本身的classloader,里面保存着一个pathList对象,patchList对象里面有一个数组保存着dex文件,我的意思是通过反射将jar包所包含的dex添加到这数组中。这是dex分包原理,也是插件开发的原理。
一年多之前 回复
u010386612
u010386612 activity也可以,我已经说了通过反射将该jar包添加到classloader对象中,我也没说的太明白。
一年多之前 回复
qq_29628249
qq_29628249 回复AItsuki: 不是哟 其他的类可以用dex动态调用 就是activity 或者说四大主键 不能这样调用
一年多之前 回复
u010386612
u010386612 嗯 是的,不仅activity,所有类都是这样的。
一年多之前 回复
qq_29628249
qq_29628249 回复AItsuki: 那么startacitivity 的话就只能是在编译到apk中的类中招activity咯?
一年多之前 回复
qq_29628249
qq_29628249 那么startacitivity 的话就只能是在编译到apk中的类中招activity咯?
一年多之前 回复
u010386612
u010386612 如果你说的是动态加载jar包,那么也intent也无法找到该activity,除非你使用反射将该jar包添加到classloader对象中
一年多之前 回复
u010386612
u010386612 肯定找不到啊,怎么会在sd卡中呢。不会出现这种情况的,编译都不通过。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!