虽然我们有onStart方法,但onRestart方法的目的是什么?
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onRestart() {
super.onRestart();
}
答案 0 :(得分:4)
答案 1 :(得分:3)
调用onRestart()
的一个案例是当用户按下主页按钮并进入启动器屏幕时。在这种情况下,不会销毁活动并触发暂停/停止事件。当用户再次打开您的应用时,onRestart()
之前会调用该活动的onCreate()
。您可以找到示例here。
答案 2 :(得分:2)
http://developer.android.com/training/basics/activity-lifecycle/index.html
答案 3 :(得分:1)
您可以在Android开发者身上阅读有关活动生命周期的所有信息:http://developer.android.com/reference/android/app/Activity.html#onRestart()
直接从那里采取:
在重新显示当前活动时,在onStop()之后调用 给用户(用户已导航回用户)。它将被遵循 通过onStart()然后onResume()。
对于使用原始Cursor对象的活动(而不是创建 他们通过managedQuery(android.net.Uri,String [],String,String [], 字符串),这通常是光标所在的位置 requeried(因为你已经在onStop()中停用了它。
派生类必须调用超类的实现 这种方法。如果他们不这样做,将抛出异常。
答案 4 :(得分:1)
根据this
注意:由于系统在停止时将系统内存中的Activity实例保留,因此您可能不需要实现onStop()和onRestart()(甚至onStart()对于大多数相对简单的活动,活动将停止并重新启动,您可能只需要使用onPause()来暂停正在进行的操作并断开与系统资源的连接。
在将当前活动重新显示给用户(用户已导航回用户)时,在onStop()之后调用。接下来是onStart()然后是onResume()。
对于使用原始Cursor对象的活动(而不是通过managedQuery创建它们(android.net.Uri,String [],String,String [],String),这通常是应该重新获取光标的位置(因为你已经在onStop()中停用了它。
答案 5 :(得分:0)
onRestart()
在 onStop()
之后重新显示给用户时调用。
例如用户已导航回它。
答案 6 :(得分:0)
只有在您导航离开然后导航回活动时,才能 100% 确定调用了 onRestart
。
另一方面,当你按下home键并且应用程序移到后台时,我们无法知道应用程序是被操作系统销毁以收回资源还是仍然驻留在内存中。如果应用程序被销毁,则将调用 onCreate
。否则,如果应用程序在内存中仍然可用,则将调用 onRestart
。