onCreate() 活动第一次被创建的时候调用;
onStart() 活动将要展示在前端时调用
onResume() 处于运行状态,并且可以跟用户交互
onPause() 活动即将从前台退出
onStop() 活动完全不可见
onDestroy() 被销毁之前
onRestart() 重新运行之前
活动的4种启动模式:standard、singleTop、singleTask、singleInstance
可以通过android:launchMode属性来选择
1、standard(默认)
每当启动一个新的活动,它就会在返回栈中入栈,并处于栈顶的位置,系统不会在乎这个活动是否已经在返回栈中,每次启动都会创建该活动的一个新的实例
2、singleTop
在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不糊再创建新的活动实例
但是,当启动的活动不是处于栈顶,还是会创建新的实例(也就是栈顶之下如果存在该活动,但是栈顶不是该活动的话,依然会创建新的实例)。
该模式可以很好地解决重复创建栈顶活动的问题
3、singleTask
每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈,
如果没有发现就会创建一个新的活动实例。
4、singleInstance
指定为singleInstance模式的活动会启用一个新的返回栈来管理这个活动
UI的一些属性设置
android:gravity 文字对齐方式
android:textAllCaps=“false" 关闭Button对所有字母都大写的设置
android:hint 提示性文本
android:maxLines 最大行数
style="?android:attr/progressBarStyleHorizontal" 指定ProgressBar为水平进度条样式
inflate(int resource, ViewGroup root, boolean attachToRoot)
inflate()方法一般接收两个参数,第一个参数就是要加载的布局ID,第二个参数就是指给该布局的外部再嵌套一层父布局,如果不需要就直接传null。
第三个参数attachToRoot
1. 如果root为null,attachToRoot将失去作用,设置任何值都没有意义。
2. 如果root不为null,attachToRoot设为true,则会给加载的布局文件的指定一个父布局,即root。
3. 如果root不为null,attachToRoot设为false,则会将布局文件最外层的所有layout属性进行设置,当该view被添加到父view当中 时,这些layout属性会自动生效。
4. 在不设置attachToRoot参数的情况下,如果root不为null,attachToRoot参数默认为true。
这样就成功创建了一个布局实例,之后再将它添加到指定的位置就可以显示出来了。