1

如果我有一个方法被调用onStop并且它调用super.onStop();. 这个方法什么时候运行?

在我的主要活动中,我开始另一个活动,如下所示startActivity(new Intent(this, MyNewActivity.class));:这会自动停止我的主要活动并打电话onStop吗?

onStop另外,我应该在我的主要活动方法中做什么样的事情。到目前为止,我所做的只是取消注册听众以释放空间,但除此之外我还应该做些什么吗?

谢谢,非常感谢您的帮助。

4

2 回答 2

2
When does this method run?

当您的 Activity 不再对用户可见时调用此方法

Does this automatically stop my main activity and call onStop

是的,当您启动另一个活动时,首先调用 onPause() 函数,然后调用 onStop()。

what kind of things should I do in the onStop method of my main activity

这取决于您的实现和您的需求,但建议在 onPause() 回调函数上实现持久数据

于 2013-10-19T08:24:24.253 回答
1

在我的主要活动中,我按如下方式开始另一个活动: startActivity(new Intent(this, MyNewActivity.class)); 这会自动停止我的主要活动并调用 onStop 吗?

您可以自己了解当您调用新活动时会发生什么,只需放置一个简单的日志语句并检查自己。

http://developer.android.com/guide/components/tasks-and-back-stack.html

从文档中引用

当当前活动开始另一个活动时,新活动被推到堆栈顶部并获得焦点。

前一个活动保留在堆栈中,但已停止。当活动停止时,系统会保留其用户界面的当前状态。当用户按下 Back 按钮时,当前 Activity 从栈顶弹出(该 Activity 被销毁)并恢复前一个 Activity(其 UI 的先前状态被恢复)。

onStop()

当活动不再对用户可见时调用,因为另一个活动已恢复并正在覆盖该活动。这可能是因为正在启动一项新活动,正在将现有活动带到这个活动之前,或者这个活动正在被破坏。如果此活动返回与用户交互,则为 onRestart(),如果此活动即将消失,则为 onDestroy()。

检查主题保存活动状态

http://developer.android.com/guide/components/tasks-and-back-stack.html#ActivityState

注意:当系统停止您的一个活动时(例如当一个新活动开始或任务移至后台时),如果系统需要恢复系统内存,它可能会完全销毁该活动。发生这种情况时,有关活动状态的信息将丢失。我相信这是优先发生的。

如果您需要存储持久数据,请在onPause

有关更多信息,请检查活动生命周期

http://developer.android.com/reference/android/app/Activity.html

于 2013-10-19T08:24:49.630 回答