Android移动应用开发基础2(Activity的生命周期)

Android的组件

Activity,Service,BroadcaseReceiver和CaontentProvider

Activity

Android程序的呈现层,显示可视化页面,并接收与用户交互所产生的界面事件

Android应用程序可以包含一个或多个Activity,一般程序启动后会呈现一个Activity,用于提示用户程序已正常启动

 在界面上的表现形式:全屏窗体,非全屏悬浮窗体,对话框

Service

Service用于没有用户界面,但需要长时间在后台运行的应用

ContentProvider

ContentProvider是Android系统提供的一种标准的共享数据的机制,应用程序可以通过ContentProvider访问其他应用程序的私有数据

    私有数据可以是存储在文件系统中的文件,也可以是SQLite中的数据库

Android系统内部也提供一些内置的ContentProvider,能够为应用程序提供重要的数据信息

BroadcaseReceiver

BroadcaseReceiver是用来接受并响应广播信息的组件

不包含任何用户界面

可以通过启动Activity或者Notifivation通知用户接收到重要信息

    Notifivation能够通过多种方法提示用户,包括闪动背景灯,震动设备,发出声音或在状态栏放置一个持久化的图标

组件的生命周期

所有的Android组件都有自己的神明周期,是从组件的建立到组件销毁的整个过程

在生命周期中,组件会在可见,不可见,活动,非活动等状态中不断变化

Activity生命周期

活动状态,Activity在用户界面中处于最上层,完全能被用户看到,能够与用户进行交互
暂停状态,Activity在界面上被部分遮挡,该Activity不再处于用户界面的最上层,且不能够与用户进行交互
停止状态,Activity在界面上完全不能被用户看到,也就是说这个Activity被其他Activity全部遮挡
非活动状态不在以上三种状态中的Activity则处于非活动状态

Activity从建立到销毁的过程

221059_OE3P_2646795.png

全生命周期:

全生命周期是从Activivty建立到销毁的全部过程,始于onCreate(),结束于onDestory()

使用者通常在onCreate()中初始化Activity所能使用到的全局资源和状态,并在onDestory()中释放这些资源

在一些极端的情况下,Android系统会不调用onDestory()函数,而直接终止进程

函数的调用顺序:onCreate()—onStart()—onResume—onPause()—onStop()—onDestory()

调用onCreate()函数分配资源

调用onStart()将Activity显示在屏幕上

调用onResume()获取屏幕焦点

调用onPause(),onStop(),onDestory()。释放资源并销毁进程

可视生命周期

可视生命周期是Activity在界面上从可见到不可见的过程,开始于onStart(),结束于onStop()

函数的调用顺序:onSaveInstanceState ()→ onPause()→ onStop() → onRestart()→ onStart()→ onResume()
调用onSaveInstanceState()函数保存Activity状态
调用onPause()和onStop(),停止对不可见Activity的更新
调用onRestart()恢复需要界面上需要更新的信息
调用onStart()和onResume()重新显示Activity,并接受用户交互

活动生命周期

活动生命周期是Activity在屏幕的最上层,并能够与用户交互的阶段,开始于onResume(),结束于onPause()
在Activity的状态变换过程中onResume()和onPause()经常被调用,因此这两个函数中应使用更为简单、高效的代码
函数调用顺序如下:onSaveInstanceState() → onPause() → onResume()
调用onSaveInstanceState ()保存Activity的状态
调用onPause()停止与用户交互
调用onResume()恢复与用户的交互

Activity生命周期的事件回调函数

222957_Y4T4_2646795.png

避免Activiy对象被销毁
在低内存资源的情况下,Android系统会终止任何一暂停、停止或销毁的Activity进程,这意味着不处于前台的Activity都可能被关闭.
如果ActivityonPause()方法调用后被关闭,那么他的onStop()和onDestory()方法可能不会被调用,在onPause()方法中释放越多的资源,转入后台的Activity被终止的可能性越小.
在onDestory中销毁静态Activity数据.当一个Activity呗销毁,onDestroy()方法将被调用,在下面两种情况下回被回调:Activity自然的完成了它的生命周期,或者由于资源占用的原因被Android操作系统终止.

转载于:https://my.oschina.net/JavaXiaofeng/blog/638068

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值