昨天小逗比面试回来,我们聊了一下,其中一个关于当前activity调用其他应用的activity后,会不会加入到当前的任务栈里的问题,印象深刻。
手头的活也调用了其他应用,以前做老式的分享也用过这里,但是具体里面的实现和归属真的没有细想过,正好在这整理一下。
首先得说,无论是哪个activity都是通过intent+startActivity来启动的,这其中startactivity只是一个执行者,具体执行什么,由intent决定。通过intent的具体意图来区分 显示调用(知道包名加activity名直接打开)和隐式调用(知道过滤器的action)。其中要注意的点是被调用的activity必须exported = true,嘻嘻其实错几次就知道了。
好了,指定的activity已经起来了,那么他就是已经被加入到栈里了,具体怎么加入,要看是通过那种启动模式启动的,对于activity有四种:standard(默认的、什么都不管直接加)、singletop(只复用