Android 此演示如何使用Onstop方法?
我正在做一个演示,以了解后台堆栈和活动生命周期 我提出:Android 此演示如何使用Onstop方法?,android,android-activity,android-lifecycle,Android,Android Activity,Android Lifecycle,我正在做一个演示,以了解后台堆栈和活动生命周期 我提出: 主要活动 MainActivityDialog(另一个活动主题为dialog) 活力 我启动了这个应用程序,主要活动如下所示。然后按按钮显示对话框,然后打开MainActivityDialog。然后我再次按下MainActivityDialog上的按钮,活动就打开了。最后,我按下了后退按钮 MainActivity -> MainActivityDialog -> BActivity ---Back---> Mai
- 主要活动
- MainActivityDialog(另一个活动主题为dialog)
- 活力
MainActivity -> MainActivityDialog -> BActivity ---Back---> MainActivityDialog
以下是此应用程序的日志:
我的问题是:
我不是安卓的专家,但既然还没有人回答,我会尽我最大的努力。我想提供帮助,因为我也第一次像你一样学习android(使用log cat查看activiti的当前状态) 为什么从启动BActivity后MainActivity停止 维护活动对话框 每次启动新活动时,旧活动将始终暂停/停止 那么在BActivity生命周期方法被调用之后,为什么 MainActivityDialog是否停止 因为现在当前活动是
BActivity
,换句话说:MainActivityDialog
不是活动/可见的,因此其已停止/暂停
按下BActivity中的后退按钮后,MainActivity首先开始
然后MainActivityDialog启动,然后MainActivityDialog恢复
是的,因为您从MainActivity
启动了MainActivityDialog
,所以将首先重新启动MainActivity
请随意评论,我还在学习:)对多个活动调用
onStop()
和onDestroy()
的顺序是不确定的
如果您的活动堆栈中有多个活动在屏幕上不再可见,Android可能会在任何时候以任何顺序调用onStop()
。这只是对活动的一个指示,即用户不再可以看到该活动。您不能依赖于对多个活动的onStop()
调用的顺序
这同样适用于ondestory()
。一旦某个活动完成,Android可能会对该活动调用onDestroy()
。如果您的任务中有多个已完成的活动,Android可以在任何时候以任何顺序调用它们。这也是不确定的。调用onDestroy()
只是通知活动它不再处于活动状态,并且应该释放它可能拥有的任何资源
不能保证onStop()
或onDestroy()
会被调用。保证的最后一个生命周期调用是onPause()
。在那之后,Android可以直接终止进程,而不调用任何进一步的生命周期方法
在第二个问题中,您想知道为什么在用户按下
BActivity
上的后退按钮后,MainActivity
首先启动,然后启动MainActivityDialog
。原因是MainActivity
首先在屏幕上可见,然后MainActivityDialog
在MainActivity
上方的屏幕上可见(因为MainActivityDialog
是以对话框为主题的,它不会覆盖整个屏幕,您可以看到MainActivity
的部分内容).我的问题是,当我们去BActivity时,为什么桌面上的mainActivity比mainActivityDialog先调用?对不起,我不知道这个。也许这就是“对话”的工作原理。我的意思是,“dialog”(启动它的活动)的父级总是首先停止。