Android 活动机制详解「activity」

Activity

一个应用通常由多个彼此松散联系的 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 会被销毁,重新创建一个新的活动

注意:在 activity 销毁前,会调用 onRestoreInstanceState 方法,将之前的数据(对象等等)通通保存下来,但是控件上的信息不会被保留。


二、优先级,如果内存不足,会把优先级低的活动 stop 掉

优先级--高到低

  1. 正在运行的活动,
  2. 在后台不可见的活动,
  3. 执行过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;
}


“Android”的图片搜索结果

Activity 的启动模式

  1. standard
  2. singleTop
  3. singleTask
  4. singleInstance

点击这里查看详解:->正在归纳中


本文实例项目

-> 点击这里 https://github.com/FishInWater-1999/android_four_major_components

如果感觉我总结的不错,记得点赞诺~ 么么哒

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值