如果我有一个名为onStop
的方法,则会调用super.onStop();
。这个方法什么时候运行?
在我的主要活动中,我按如下方式开始另一项活动:startActivity(new Intent(this, MyNewActivity.class));
。这是否会自动停止我的主要活动并致电onStop
?
另外,我应该在主要活动的onStop
方法中做些什么。到目前为止,我所做的只是取消注册听众以释放空间,但除此之外我还应该做些什么呢?
谢谢,非常感谢任何帮助。
答案 0 :(得分:2)
When does this method run?
当您的“活动”对用户不再可见时,此方法会调用
Does this automatically stop my main activity and call onStop
是的,当你启动另一个Activity时,首先调用onPause()函数,然后调用onStop()。
what kind of things should I do in the onStop method of my main activity
这取决于您的实现和您的需求,但是建议在onPause()回调函数上实现的持久数据
答案 1 :(得分:1)
在我的主要活动中,我按如下方式启动另一个活动:startActivity(new Intent(this,MyNewActivity.class));这会自动停止我的主要活动并致电onStop吗?
您可以了解自己在调用新活动时会发生什么事情需要重点关注一个简单的日志声明并自行检查。
http://developer.android.com/guide/components/tasks-and-back-stack.html
从文档引用
当当前活动从另一个活动开始时,新活动将被推到堆栈顶部并获得焦点。
之前的活动仍在堆栈中,但已停止。当活动停止时,系统将保留其用户界面的当前状态。当用户按下“返回”按钮时,当前活动将从堆栈顶部弹出(活动被销毁),之前的活动将恢复(其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