首页 > 试题广场 >

在滴滴打车点击到支付宝支付,出现密码输入框,到此时相关的Ac

[单选题]
在滴滴打车点击到支付宝支付,出现密码输入框,到此时相关的Activity会发生的生命周期回调依次为()

  • Onpause() ondestroy() oncreate() onresume()
  • ondestroy()oncreate() onstart() onresume()
  • onstop() ondestroy() oncreate() onstart()
  • onpause() oncreate() onstart() onresume()
推荐
1,首先滴滴失去焦点,onPouse() 2,支付宝oncreate...onstart...onresame
编辑于 2017-03-19 11:59:02 回复(4)
G^J头像 G^J
当被启动的activity主题是透明的时(即原activity仍可见),原activity不会执行其onStop()。第三方接入的支付宝支付界面是不会完全遮盖原activity的
编辑于 2017-03-19 11:58:10 回复(1)

D

滴滴界面会onpausem由于支付宝是dialog形式的所以不会onstop.

支付宝界面会oncreate - onstart - onresume

发表于 2017-04-03 17:01:20 回复(0)
所以如果没有覆盖全部界面的话,应该到调用onPause()就结束了,不会再继续调用onStop()了。
发表于 2018-04-18 19:00:09 回复(0)
原Activity弹出支付界面时,支付界面时一个dialog窗口,支付界面就处于栈顶了,但此时没有完全遮盖住原Activity,所以原Activity只走onPause,不走onStop。除非支付界面完全遮住原Activity。接着支付界面就走onCreate、onStart、onResume。
发表于 2017-09-02 19:46:28 回复(0)
只要看题意说的是两个进程的Activity就很容易理解,题意说“到此时相关的Activity会发生的生命周期回调依次为”,包括支付宝的Activity和滴滴的Activity,首先滴滴的Activity:onPause(),然后支付宝的Activity:onCreate()->onStart()->onResume();
为什么滴滴的Activity不回调onDestroy()???望大神给予帮助
发表于 2017-01-30 18:35:39 回复(4)
上次遇到一个一样的题目 答案是 c 有毒吧
发表于 2018-09-27 16:42:09 回复(1)
支付宝的支付活动可能采用的是singleinstance启动模式,其他程序调用时会新建返回栈,使得支付活动入栈,
发表于 2018-03-21 09:26:29 回复(0)
仍然是处于支付宝这个APP中的
发表于 2018-01-25 14:46:50 回复(0)
oncreate只有在启动的时候执行唯一的一次,当dialog弹出时,界面已经存在,可以通过排除法将ondestory方法排除掉,onstop也同理可得排除B、C选项。
在支付宝被打开时,生命周期从oncreate方法开始,故A选项排除


发表于 2017-09-17 20:12:39 回复(0)
确实,是被小窗口屏蔽,那就是onPause,跳到onCreate
发表于 2017-09-09 11:40:26 回复(0)
d有问题吧,怎么可能没有onStop
发表于 2017-04-09 14:17:56 回复(0)
首先你要想下这是两个activity,滴滴activity跳转到支付宝Activity会先调用onpause();在打开支付宝Activity时相当于开启了一个activity;这时都知道会调用oncreate()---》onstart()--》onresum();
发表于 2017-03-01 16:22:16 回复(0)
选择D
滴滴失去焦点,调用onPause()方法,紧接着支付宝的oncreate() onstart() onresume()。
发表于 2017-02-19 20:46:12 回复(0)
支付宝支付是跳转到支付宝的activity里面,这个时候滴滴打车的界面是不可见的了,所以,滴滴打车的activity应该先调用onPause()然后再调用onStop()才对。
关于activity的生命周期,官方文档是这么解释的
  • If an activity has lost focus but is still visible (that is, a new non-full-sized or transparent activity has focus on top of your activity), it is paused. A paused activity is completely alive (it maintains all state and member information and remains attached to the window manager), but can be killed by the system in extreme low memory situations.
如果activity失去了焦点却依旧可见(比如,一个新的非全屏的或者透明的activity获得了焦点,并且盖住了原来的activity),这个时候这个activity就会暂停(Pause),一个暂停了的activity依旧是在运行的(它仍然持有这个activity的所有状态和成员变量的信息,并且依旧受到窗口管理器的管控),但是当可用内存非常少的时候,系统也会把它关掉。

  • If an activity is completely obscured by another activity, it is stopped. It still retains all state and member information, however, it is no longer visible to the user so its window is hidden and it will often be killed by the system when memory is needed elsewhere.
如果一个activity被另一个activity完全挡住了,它就会停止(stop)。这时候它仍然保存着所有的状态和成员变量的值,但是它因为用户已经完全看不见它了,所以它的窗口被隐藏起来了,这种情况下,当系统需要将内存用在别处的时候,这个activity的就很有可能被系统关闭。

所以,综上所述,支付宝的activity应该是把滴滴打车的activity完全挡住,所以滴滴打车的activity应该是会调用onStop()方法的。


发表于 2017-02-19 19:25:42 回复(3)
d
发表于 2016-11-23 23:15:20 回复(0)