Activity
一个应用通常由多个彼此松散联系的 Activity 组成。 一般会指定应用中的某个 Activity 为“主”Activity,即首次启动应用时呈现给用户的那个 Activity。 而且每个 Activity 均可启动另一个 Activity,以便执行不同的操作。
生命周期:
onCreate()
->onStart()
- >onResume()
->onPause()
->onStop()
->onDestroy()
当我们跳转到一个新的活动中时:
可以看到调用顺序是:onCreate()
-> onStart()
- > onResume()
但进入锁屏或者跳转到下一个 Dialogactivity(特别注意是:DiaLogActivity) 时,调用了 onPause 方法
再从锁屏或者(DiaLogActivity)中回来时,调用了 onResume 方法,再次进入运行状态。
当 app 退到后台,但不退出时,调用 onPause onStop 方法
但再次回到程序中时,调用 onRestart onStart onResume
onCreate
在该onCreate()
方法中,您将执行基本应用程序启动逻辑,该逻辑应该在活动的整个生命周期中仅发生一次。例如,您的实现可能会将数据绑定到列表,将活动与a关联 ,并实例化一些类范围变量。此方法接收参数,该参数是 包含活动先前保存状态的对象。如果活动以前从未存在过,则对象的值为null。
onStart
当活动进入Started状态时,系统将调用此回调。该onStart()
调用使活动对用户可见,因为应用程序准备活动以进入前台并变为交互式。例如,此方法是应用程序初始化维护UI的代码的位置。
onResume
活动进入Resumed状态时,它进入前台,然后系统调用onResume()
回调。这是应用程序与用户交互的状态。该应用程序保持这种状态,直到某些事情成为焦点远离应用程序。例如,这样的事件可能是接收电话,用户导航到另一个活动,或者设备屏幕关闭。
onPause
系统将此方法称为用户离开您的活动的第一个指示(尽管并不总是意味着活动正在被销毁); 它表示活动不再在前台(尽管如果用户处于多窗口模式,它仍然可见)。使用该onPause()
方法暂停或调整Activity
在处于暂停状态时不应继续(或应继续适度)的操作,并且您希望很快恢复。
onStop
当您的活动不再对用户可见时,它已进入 Stopped状态,系统将调用 onStop()
回调。例如,当新启动的活动覆盖整个屏幕时,可能会发生这种情况。系统也可以onStop()
在活动完成运行时调用,并且即将终止。
特殊情况
一、当屏幕发生旋转时,当前的 activity 会被销毁,重新创建一个新的活动
注意:在 activity 销毁前,会调用 onRestoreInstanceState 方法,将之前的数据(对象等等)通通保存下来,但是控件上的信息不会被保留。
二、优先级,如果内存不足,会把优先级低的活动 stop 掉
优先级--高到低
- 正在运行的活动,
- 在后台不可见的活动,
- 执行过stop的活动
Activity 与 Fragment
创建:
销毁:
Activity与menu创建先后顺序
menu 在 Resume 后被调用,onCreateOptionsMenu 方法创建 menu:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
LogUtils.d("onCreateOptionsMenu");
getMenuInflater().inflate(R.menu.options_menu, menu);
return true;
}
Activity 的启动模式
standard
,singleTop
,singleTask
,singleInstance
点击这里查看详解:->正在归纳中
本文实例项目
-> 点击这里 https://github.com/FishInWater-1999/android_four_major_components
如果感觉我总结的不错,记得点赞诺~ 么么哒