一 Android基本知识—— 四大组件

基本知识(一)类型 异常
四大组件
: 四大组件之一,一个用户交互界面对应一个。
生命周期
从创建到销毁状态,包括:
—— 创建
—— 开始可见
—— 可编辑((即焦点)
—— 遮挡(丢失焦点)
—— 不可见
—— 销毁
保存数据
调用()和()方法后,进入后台不可见状态,如果系统内存不足时, 可能会被系统摧毁,这个 重新回到前台, 之前所作的改变就会消失 。为了避免该问题发生,可以覆写 ( )方法 。可以将状态数据存储到这个对象中, 即使被系统摧毁, 当用户重新启动这个而调用它的()方法时, 上述的 对象会作为实参传递给 ()方法, 可以从对象中取出保存的数据, 然后利用这些数据将恢复到被摧毁之前的状态 。
ps:()方法如果调用将发生在 ()或 ()方法之前 。
启动模式
—— 默认启动方式
—— 栈顶复用方式
—— 栈内复用方式
—— 单独栈管理模式
页面间数据传递
—— 默认
—— 首选
广播
静态数据
等等
跳转 显式
指定包名,类名方式 。
Intent intent = new Intent(MainActivity.this,xxx.class);
隐式
不需要指定具体的类名,而是通过 过滤器过滤的形式匹配对应的页面 。
过滤的信息有、、data 。如果不能匹配目标的,那么启动就会失败 。一个的可以有多个,只要匹配任意一个就可以成功启动 。

匹配原则
启动的时候如果没有添加会自动添加...,如果-中没有添加...则会匹配失败
中匹配任意一个中的(至少一个)、(完全匹配)、data(至少一个)同时匹配成功,则可以启动 。
一种长生命周期的,没有可视化界面,运行于后台的一种服务程序 。
默认情况, 和是运行在当前 app 所在进程的 main (UI 主线程)里面 。
里面不能执行耗时的操作(网络请求,拷贝数据库,大文件等 )
启动方式
1:方法启动。
这种 必须调用()方法或者其他组件调用()方法来停止它 。
2:( ,conn, int flags)跟进行绑定,当绑定成功的时候会将代理对象通过回调的形式传给 conn,获取服务代理对象 。
通过()方法来关闭这种连接 。一个可以同时和多个客户绑定,当多个客户都解除绑定之后,系统会销毁 。
生命周期
ps: 实例只会有一个,如果要启动的已经存在,就不会再次创建该当然也不会调用 ()方法 。
一个可以被多个客户进行绑定,只有所有的绑定对象都执行了()方法后 才会销毁 。
一种异步的处理多线程问题,通过创建独立的线程来处理 ()方法实现的代码,所有请求处理完成后,会自动停止,无需调用 ()方法 。
public class MyIntentService extends IntentService {// ......@Overrideprotected void onHandleIntent(Intent intent) {// 处理耗时操作try { Thread.sleep(1000);} catch (Exception e){ e.printStackTrace();}}}
组件之间传播数据的一种机制 。由广播的发送者和接收者组成 。两者不需要知道对方存在 。它的底层采用了机制来实现 。
特点注册 静态注册
在清单文件中注册广播接收者,只要 app 在系统中运行则一直可以接收到广播消息 。