一:activity的理解
1.活动:四大应用组件之一
2.作用:提供能让用户操作并与之交互的界面
3.组件的特点:
它的类必须实现特定接口或继承特定类
需要在配置文件中配置全类名
它的对象不是通过new来创建的,而是系统自动创建的
它的对象具有一定的声明周期,它的类中有对应得生命周期回调方法
4.那些地方用到反射技术:(android)
a.配置文本中配置全类名
b.布局文件定义标签
c.显示意图:Intent(Context context,Class c)
二:Intent的理解
1.意图:信使(activity,service,broadcastReceiver三个组件间通信的信使)
2.分类:
显式:操作当前应用自己的组件
隐式:操作其他应用自己的组件
三:Intent的使用
1.创建:
显式:Intent(Content content,Class activityClass)
隐式:Intent(String action) //与Activity的<intent-filter>的action匹配
2.携带数据
额外:PutExtra(String key,Xxx value) 内部用map容器保存
有特定前缀:setData(Uri data) //tel:123。smsto:123123
3.读取数据
额外:Xxx getXxxExtra(String key)
有特定前缀:Uri getData()
四:activity的使用 *****
1.定义
a.定义一个类 extends Activity,并重写声明周期方法
b.在功能清单文件中使用<activity>注册
2.启动
a.一般启动:startActivity(Intent intent)
b.带回调启动:startActivityForResult(Intent intent,int requestCode)
重写:onActivityResult(int requestCode,int resultCode ,Intent data)
3.结束
a.一般结束:finish()
b.带结果结束:setResult(int resultCode,Intent data)
五:activity生命周期
activity界面的四种状态:
运行状态:可以可操作
暂停状态:可见不可操作
停止状态:不可见,但对象存在
死亡状态:对象不存在
不存在 onCreate() 停止 onStart() 暂停 onResume() 运行
运行 onPause() 暂停 onStop() 停止 onDestory() 不存在
1.界面从"死亡"--》"运行"
创建对象 --》onCreate() --》onStart() --》onResume()
2.界面从"运行"--》"死亡"
onPause() --》onStop() --》onDestory()
3.界面从"运行"--》"停止"
onPause() --》onStop()
4.界面从"停止"--》"运行"
onRestart() --》onStart() --》onResume()
5.界面从"运行"--》"暂停"
onPause()
6.界面从"暂停"--》"运行"
onResume()
onCreate():加载布局和初始化工作
onResume():只有经历此方法,才能进入运行状态
onDestroy():在对象死亡之前,做一些收尾或清理的工作
六:Activity的TaskStack:
1.在android中,系统用TaskStack结构来存储管理启动的Activity对象
2.一个应用启动,系统就会为其创建一个对应得TaskStack来存储并管理该 应用的Activity对象
3.只有最上面的任务栈的栈顶的Activity才能显示在窗口中
七:Activity的launchMode(加载模式):
在android中,启动一个Activity有时创建一个新对象,有时需要复用已有 的对象,可以配置activity时通过launchMode属性指定。
launchMode属性值(4个)为:
standard:每次调用startActivity()方法就会产生一个新的实例
singleTop:若实例为栈顶时则不产生新的实例
singleTask:只有一个实例,默认在当前Task中
singleInstance:只有一个实例,创建时会新建一个栈,且此栈中不 能有其他对象
八:总结
1.实现一个简单功能的应用的步骤
a.外观:分析界面组成,定义布局文件
b.行为:编写Activity的实现
1).在onCreate()中加载布局文件:setContentView(layoutId)
2).调用findViewById得到需要操作的所有视图对象并保存为成员变量
3).给视图对象设置监听器(点击/长按),在回调方法实现响应逻辑
2.使用隐式意图启动系统应用的界面
如何找到对应得Action字符串:
添加ActivityManager的Log日志,利用系统应用源码找到对应的Activity的配置
3.权限:当调用一些系统比较重要的功能时需要声明