android四大组件之活动(Activity)

活动(Activity)


一、创建Activity
1.1、定义Activity
(1)定义类继承Activity
(2)在AndroidManifest.xml的<application>节点中声明<activity>
1.2、显式意图创建方式
(1)构造函数,代码少
new Intent(this, NewActivity.class);
(2)类名形式,灵活,可扩展性强
intent.setClassName(this, "cn.itcast.activity.NewActivity");
(3)包名类名形式,可启动其他程序中的Activity
intent.setClassName("cn.itcast.downloader", "cn.itcast.downloader.MainActivity");
1.3、创建Activity并传递数据
(1)在意图对象中封装了一个Bundle对象,可以用来携带数据
(2)在新Activity中可以获得意图对象以获取其中Bundle保存的数据
1.4、创建Activity获取返回数据
(1)使用startActivityForResult(Intent intent, int requestCode) 方法打开Activity
(2)重写onActivityResult(int requestCode, int resultCode, Intent data) 方法
(3)新Activity中调用setResult(int resultCode, Intent data) 设置返回数据之后,关闭Activity就会调用onActivityResult方法
1.5、隐式意图创建Activity
(1)显式意图是指在创建意图时指定了组件,而隐式意图则不指定组件,通过动作、类型、数据匹配对应的组件
(2)在清单文件中定义<activity>时需要定义<intent-filter>才能被隐式意图启动
(3)<intent-filter>中至少配置一个<action>和一个<category>,否则无法被启动
(4)Intent对象中设置的action、category、data在<intent-filter>必须全部包含才能启动
(5)<intent-filter>中的<action>、<category>、<data>都可以配置多个,Intent对象中不用全部匹配,每样匹配一个即可启动
(6)如果一个意图可以匹配多个Activity,Android系统会提示选择
二、生命周期
1、Acitivity三种状态
运行:activity在最前端运行
暂停:activity可见,但前端还有其他acti vity,被覆盖一部分,或者前端activity透明
停止:activity不可见,完全被覆盖
2、生命周期相关方法
onCreate:创建时调用,或者程序在暂停、停止状态下被杀死之后重新打开时也会调用
onStart:onCreate之后或者从停止状态恢复时调用
onResume:onStart之后或者从暂停状态恢复时调用,从停止状态恢复时由于调用onStart,也会调用onResume
onPause:进入暂停、停止状态,或者销毁时会调用
onStop:进入停止状态,或者销毁时会调用

onDestroy:销毁时调用

onRestart:从停止状态恢复时调用


3、保存信息相关方法
onSaveInstanceState:在Activity被动的摧毁或停止的时候调用,用于保存运行数据,可以将数据存在在Bundle中
onRestoreInstanceState:该方法在Activity被重新绘制的时候调用,例如改变屏幕方向,savedInstanceState为onSaveInstanceState保存的数据
三、内存管理
1、Android系统在运行多个进程时,如果系统资源不足,会强制结束一些进程。优先选择哪个进程来结束是有优先级的。以下顺序靠上的优先结束
空:进程中所有Activity都已销毁,(开进程后按退出键退出的进程)
后台:进程中有一个停止状态的Activity(开进程后按Home键后台运行)
可见:进程中有一个暂停状态的Activity
前台:进程中正在运行一个Activity
四、启动模式
1、在AndroidManifest.xml中的<activity>标签中可以配置android:launchMode属性,用来控制Actvity的启动模式
2、在Android系统中我们创建的Acitivity是以栈的形式呈现的
standard:每次调用startActivity()启动时都会创建一个新的Activity放在栈顶
singleTop:如果启动的Activity时,指定Activity不在栈顶就创建,如在栈顶,则不再创建
singleTask:如果启动的Activity不存在就创建,如果存在直接跳转到指定的Activity所在位置,上面的全销毁。
singleInstance:如果启动的Activity不存在就创建,如果存在就将指定的Activity移动到栈顶
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值