基础知识
1 android四大组件
Activity(活动)
Service(服务)
BroadcastReceiver(广播接收器):应用间的广播消息
ContentProvider(内容提供器):实现应用之间共享数据
2 逻辑与视图分离:活动与界面的编写分开,在布局文件中编写界面,然后在活动中引入进来
3 为什么使用log而不使用System.out:打印日志不可控制、打印时间无法确定、不能添加过滤器、日志没有级别区分。
4 布局文件的两种使用方式:使用Graphical Layout的可视化编辑,使用xml文件方式编辑
5 intent:可以用于在活动、服务、广播之间穿梭,一般可用于启动活动、启动服务、发送广播
显式intent:在intent的构造函数中指明要启动的activity
隐式intent:不在intent中指明Activity,而是指明要匹配的activity的action、category,然后在注册表里对想要启动的那个activity的action、category进行说明。只有<action><category>同时能够匹配得上Intent中指定的action和category时,这个活动才能够启动。
intent传递数据:putExtra()
6 activity的生命周期
运行状态:可见、前台运行,可以与用户交互
暂停状态:可见,不处于返回栈栈顶。
停止状态:完全不可见
销毁状态:
onRestart():用于返回上一个活动
如果活动A启动活动B,在活动B运行期间,活动A被系统收回。则在返回活动A的过程中系统并不调用onRestart,而是使用onCreate重新创建。在这个过程中,可以使用onSaveInstanceState()来保存数据。
7 android的启动模式
(1) standard:默认模式:每当启动一个活动,它就会在返回栈中入栈,并处于栈顶,而且不会去检查该活动是否已经有实例存在于返回栈中了。
(2) singleTop:如果检测到想要启动的活动已经处于返回栈中且是栈顶,则直接使用,不再创建新的活动实例。但是如果想要启动的活动不是栈顶,则会创建新的实例。
(3) singleTask:如果检测到想要启动的活动已经处于返回栈中,但不是栈顶,则把其上的所有活动出栈,直接使用该活动实例。不再创建活动实例。
(4) singleIntance:在该模式下,系统会启动一个新的返回栈来管理这个活动。之所以这样做,是因为有些活动如果想在多个程序间共享,但是每个程序自己的返回栈自己使用,想要共享的话只能是另外使用一个返回栈,在这个范湖栈里的东西可以供给所有的程序一起使用。
8 如何知晓当前处于哪一个活动
写一个新的活动如baseActivity继承Activity。在这个活动的onCreate函数里打印出当前类名,然后让该类称为项目中所有活动类的父类。这样子在运行的时候就会打印出当前所处的活动的名字。