android 四大组件之Activity
2017-09-07 23:51
309 查看
什么是ativity?
一个activity顾名思义,是一项活动,一项用户可以单独进行的活动。几乎所用的activity都需要用户参与,所以activity特意建立了一个窗口与用户进行交互,例如拨打电话,照相,发送电子邮件或者浏览地图,而setContentView()可以设定窗口的布局。活动往往占据全屏,也可以被用来在其他方面:作为内浮动窗口(通过主题与windowisfloating集),或嵌入另一个活动(使用activitygroup)。几乎所有的子类的活动将实施有两种方法:1. onCreate(Bundle)
这里你可以初始化你的activity. 如 super.onCreate(savedInstanceState)取出当前存有的activity状态,因为资源紧张而经常被系统销毁,所以你可以在资源销毁之前用
@Override protected void onSaveInstanceState(Bundle outState);
存下activity,可用 onCreate或onRestoreInstanceState取出activity的状态,这尤其是在横竖屏切换activity重建时恢复先前activity状态;这里还可以用setContentView设定你的自定义布局,当然不设定也不会出事,但没有意义;可以用findViewById()取出布局的小部件如TextView\Layout等;……
2. onPause()
这里你可以处理离开activity时的事件,如activity销毁、进入后台等暂时或永久离开activity时都会调用onPause.
最后还有一个是Fragments可以模块化activity的代码,就相当于零部件,使activity简快构建更复杂的用户界面的大屏幕,当然你也不用fragments但估计构造复杂的activity时会很困难。
ativity的生命周期
活动销毁: onPause –> onStop–> onDestory活动进入后台: onPause –>onStop
活动从无到有: onCreate –> onStart –> onResume
活动从后台回来: onRestart –> onStart –> onResume
屏幕横竖贴换: onPause –> onStop–> onDestory –> onCreate –>
onStart –> onResume
图片来源
上面六个方法共同定义了activity的整个生命周期,可以使用上面方法
可实现三个嵌套的循环
1. 整个生命周期。 onCreate到onDestroy。onDestroy调用后,activity的状态会被释放,若想要,可以用onSaveInstanceState保存activity的状态。
2. 可见生命周期。onStart到onStop。调用onStop后,和Stopped不同的一点就是没有和Windows Manager相连接,但Activity对象仍然保留在内存中,它保持所有的状态和成员信息,这也就是为什么当返回时EditText里的内容不变的原因
3. 前台生命周期。onResume到onPause。调用onPause后,activity始终可见且与windowns Manager相连,只是不能与用户交互,因为被其他的activity抢了风头啦!由于此状态可能经常发生转变,因此这两个方法中应采用适度轻量级的代码,以避免因转变速度慢而让用户等待。
疑问:
1. 为什么同样是onPause –> onStop–> onDestory,而back键的和屏幕贴换的不一样呢?因为back键会调用finish(),而finsi会退出任务栈中的activity,而后销毁activity,这时自然不能再调用onCreate或onRestoreInstanceState恢复原来的状态。
2. onCreate和onRestoreInstanceState有何区别
onCreate初始化activity状态时savedInstanceState可能为空;而onRestoreInstanceState不会,因为任务栈中的activtiy还存在着呢!!
参考
android activity官方文档android onPause()和onStop()区别
相关文章推荐
- Android四大基本组件(Activity,Service,Content Provider 和 BroadcastReceiver)
- Android循序渐进 - 4.1.1 Android四大组件之-Activity(初学乍练)
- Android四大组件的工作过程(一)-Activity的工作过程
- Android学习笔记38-Android四大组件之Activity
- Android技术成长之路(四大组件之Activity)
- Android常用的四大组件之Activity
- Android个人每天总结.doc(day06 多线程&Handler类&四大组件之:Activity)
- Android四大组件之Activity(中)
- Android四大核心组件之Activity
- Android四大组件之Activity
- Android 四大组件之---Activity 详解
- android四大组件(Activity,Service,BroadcastReceiver,Content Provider)
- Android四大组件之一:Activity总结(下)
- Android四大组件之Activity
- Android初始篇二 Android四大组件之Activity
- Android四大组件之Activity
- [置顶] Android四大组件之Activity
- Android基础--Android四大组件之Activity(一)
- Android四大组件之Activity篇(一)(Activity的创建、开启和数据传递)
- Android循序渐进 - 4.1.2 Android四大组件之-Activity(初窥门径)