这是我从this training tutorial复制并粘贴的文字。
"因为系统停止时系统会将您的Activity实例保留在系统内存中,您可能不需要实现onStop()和onRestart()(或者甚至onStart()方法。对于大多数相对简单的活动,活动将停止并重新启动就好了,你可能只需要使用onPause()来暂停正在进行的操作并断开与系统资源的连接。"
我不明白。因为据我所知,活动只能通过调用onStop()来停止,并且只能通过调用onStart()来启动。如果没有onStart方法,活动怎么能开始呢。
您是否了解本段中的含义?
答案 0 :(得分:2)
我认为他们让你混淆了“停止”这个词,它似乎在段落中有多重含义。
我将其改写为
因为系统会将您的Activity实例保留在系统内存中 当不在前台时,你可能不需要 实现onStop()和onRestart()(甚至onStart()方法 一点都不对于大多数相对简单的活动,活动 将暂停并重新启动就好了,您可能只需要使用 onPause()暂停正在进行的操作并断开与系统的连接 资源。
关键是应用程序似乎可以停止,实际上,系统只是暂停了它并将其隐藏在屏幕上。当用户再次启动它时,应用程序不需要启动(因为它在技术上没有停止),所以它只是恢复。
答案 1 :(得分:1)
当您创建一个Activity并扩展基类Activity时,基类中的 onStop(),onStart()和onRestart()方法中已有代码。
您的活动只是扩展了这些方法,这意味着您可以通过覆盖为他们添加更多代码。
因此,即使只通过这些方法启动和停止活动,您也不必在应用程序中显式覆盖它们。在大多数情况下,您甚至不必担心它们:它们将由您要扩展的基类调用。
答案 2 :(得分:1)
请确保,一个Activity从onCreate方法开始,然后由系统调用onStart。如果重写onStart方法,则在onCreate方法之后也会调用重写的方法。如果不覆盖,则调用默认版本的onStart。
在onPause之后调用onStop。
请检查此链接,并查看活动生命周期。你的概念很清楚。 Difference between onCreate() and onStart()?
答案 3 :(得分:0)
你可以使用一个Activity而没有 - 如果你需要在onPause()中做一些特别的事情,你可以覆盖这个方法:
@Override
public void onPause(){
super.onPause();
// Your magic here!
}
同样适用于onStart(),onStop()等。您不需要覆盖这些方法,但如果您需要执行某些特定操作,则可以这样做。