4 回答
TA贡献1875条经验 获得超3个赞
第一次创建活动时调用。这是您应该做所有常规静态设置的地方:创建视图、将数据绑定到列表等。此方法还为您提供了一个包含活动先前冻结状态(如果存在的话)的绑定。总是后面跟着onStart()。
在活动停止后调用,然后再重新启动。总是后面跟着onStart()
当活动对用户变得可见时调用。如果活动到达前台,则后面跟着onResume()。
当活动开始与用户交互时调用。此时,您的活动位于活动堆栈的顶部,用户输入到它。总是跟在onPace()后面。
作为活动生命周期的一部分,当活动进入后台时调用,但尚未(尚未)终止。onResume()的对应项。当ActivityB在活动A前面启动时,将在A.B上调用此回调,直到A的onPace()返回时才会创建该回调,因此请确保这里不要做任何冗长的操作。
当您不再对用户可见时调用。接下来您将接收onRestart()、onDesty()或Nothing,这取决于以后的用户活动。请注意,在内存不足的情况下,这个方法可能永远不会被调用,因为系统没有足够的内存来使您的活动的进程在其onPace()方法被调用之后继续运行。
在您的活动被破坏之前收到的最后一个电话。这可能是因为活动正在完成(有人在其上调用Finish(),或者因为系统正在临时销毁该活动的这个实例以节省空间。您可以使用isFinming()方法区分>这两种场景。
onCreate()onStart()onResume()
onPause()onStop()
退出电话拨号
onRestart()onStart()onResume()
onPause()onStop()onDestroy()
活动或运行
停顿
停住
import android.app.Activity;import android.os.Bundle;import android.util.Log;public class MainActivity extends Activity { String tag = "LifeCycleEvents"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.d(tag, "In the onCreate() event"); } public void onStart() { super.onStart(); Log.d(tag, "In the onStart() event"); } public void onRestart() { super.onRestart(); Log.d(tag, "In the onRestart() event"); } public void onResume() { super.onResume(); Log.d(tag, "In the onResume() event"); } public void onPause() { super.onPause(); Log.d(tag, "In the onPause() event"); } public void onStop() { super.onStop(); Log.d(tag, "In the onStop() event"); } public void onDestroy() { super.onDestroy(); Log.d(tag, "In the onDestroy() event"); }}
TA贡献1818条经验 获得超3个赞
整个混乱是因为谷歌选择了非直观的名称,而不是如下所示:
onCreateAndPrepareToDisplay() [instead of onCreate() ]
onPrepareToDisplay() [instead of onRestart() ]
onVisible() [instead of onStart() ]
onBeginInteraction() [instead of onResume() ]
onPauseInteraction() [instead of onPause() ]
onInvisible() [instead of onStop]
onDestroy() [no change]
TA贡献1831条经验 获得超10个赞
活动有六种状态
创造
开始
恢复
停顿
停住
被毁
活动生命周期
onCreate()
onStart()
onResume()
onPause()
onStop()
onRestart()
onDestroy()
情况
打开应用程序时
onCreate() --> onStart() --> onResume()
当按下“后退”按钮并退出应用程序时
onPaused() -- > onStop() --> onDestory()
按家庭按钮时
onPaused() --> onStop()
按下主页按钮后,再次从最近的任务列表中打开应用程序或点击图标。
onRestart() --> onStart() --> onResume()
当从通知栏或打开设置打开另一个应用程序时
onPaused() --> onStop()
从另一个应用程序或设置中按下的“后退”按钮可以看到我们的应用程序。
onRestart() --> onStart() --> onResume()
当任何对话框在屏幕上打开时
onPause()
在关闭对话框或对话框中的后退按钮后
onResume()
任何手机都在响,用户在这个应用程序中。
onPause() --> onResume()
当用户按下电话的应答按钮时
onPause()
呼叫结束后
onResume()
当手机屏幕关闭时
onPaused() --> onStop()
当屏幕打开时
onRestart() --> onStart() --> onResume()
添加回答
举报