Android Activity总结
2016-08-04 10:57
162 查看
Activity概念
Activity是Android组件中最基本也是最为常见用的四大(Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器)之一Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件。
在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。
生命周期
启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
存在状态
Active/Running一个新 Activity 启动入栈后,它显示在屏幕最前端,处理是处于栈的最顶端(Activity栈顶),此时它处于可见并可和用户交互的激活状态,叫做活动状态或者运行状态(active or running)。
Paused
当 Activity失去焦点, 被一个新的非全屏的Activity 或者一个透明的Activity 被放置在栈顶,此时的状态叫做暂停状态(Paused)。此时它依然与窗口管理器保持连接,Activity依然保持活力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被强行终止掉。所以它仍然可见,但已经失去了焦点故不可与用户进行交互。
Stopped
如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(Stopped)。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,Stopped的Activity将被强行终止掉。
Killed
如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接终止它的进程。当该Activity再次显示给用户时,它必须重新开始和重置前面的状态。
activity之间的跳转
显示方法startActivity
隐式方法
Xml中配置
结束返回数据
startActivityForResult
Activity的四种launchMode
1.standard—默认2.singleTop
—当从SecondActivity跳转到FirstActivity时,系统发现存在有FirstActivity实例,但不是位于栈顶,于是重新生成一个实例。这就是singleTop启动模式,如果发现有对应的Activity实例正位于栈顶,则重复利用,不再生成新的实例。
3.singleTask
—发现有对应的Activity实例,则使此Activity实例之上的其他Activity实例统统出栈,使此Activity实例成为栈顶对象,显示到幕前。
4.singleInstance
—这种启动模式比较特殊,因为它会启用一个新的栈结构,将Acitvity放置于这个新的栈结构中,并保证不再有其他Activity实例进入。
相关文章推荐
- Android中Activity生命周期学习总结。
- Android之activity总结
- Android中Activity的标题设置的知识总结
- android Activity切换动画设置方式总结
- Android实战总结之返回键返回上一级Activity(Intent的一种用法)
- Android Activity生命周期总结
- android startActivityForResult(Intent intent, int requestCode) 整理与总结! .
- Android Activity之间跳转总结
- Android中Activity之间数据传递的几种方法总结
- Android基础总结之二:检测Activity是否在当前Task栈顶
- android从一个activity跳到另一个activity 报错 经验总结
- android,activity界面编程总结
- Android实战总结之返回键返回上一级Activity(Intent的一种用法)
- Android异常总结---ActivityManager: Warning: Activity not started, its current task has been brought to
- Android Activity总结
- 总结Android中TabActivity 的使用方法
- Android Activity总结
- 【Android】startActivityForResult调用问题总结
- Android异常总结---ActivityManager: Warning: Activity not started,its current task has been brought to th
- Android基础总结之三:Activity的四种Launcher Mode