Application 应用程序
单例模式,表示application是唯一的
每一个应用程序被启动时,就是application被创建
PID:进程的身份标识
UID:用户的身份标识
创建自己的application
1.继承Application类 , 初始化构造方法(调用父类的构造方法)
2.在androidManifest.xml的中,使用android:name创建自己的application类名
Android四大组件
Activity 95% 用来显示UI,处理和用户的交互
Service 2% 处理后台长期任务
BroadcastReceiver 3% 通信,组件交互
ContextProvider 0% 获取联系人,短信
Activity创建
1.继承Activity
2.重写onCreate方法,调用父类onCreate方法,并且加载布局setContentView(R.layout.xml文件名);
3.使用android:name添加到,name名字最好引用包名,自己定义没用
Activity跳转
从当前的Activity跳转到OneActivity
1.在组件中添加属性onClick=”方法名”
2.在主界面中创建方法,方法中的代码如下:
Intent intent = new Intent(this,OneAvtivity.class);
startActivity(intent);`
Activity的生命周期
正常来说,Activity常用到的生命周期方法包括:onCreate、onstart、onResume、onRestart、onPause、onStop、onDestroy七种;
另外还有两个Activity被异常销毁恢复的生命周期方法:onSaveInstanceState、onRestoreInstanceState
下面从不同环境条件下分析执行的生命周期方法:
(1)从当前Activity跳转到另一个Activity或者按下HOME键,再回到原来的Activity
onCreate—–>onstart—–>onResume—–>onPause—–>onStop—–>onRestart—–>onStart—–>onResume
onCreate—>onStart—>onResume
//当前Activity返回到原来的Activity是先执行当前Activity的onPause方法,再执行原来Activity的onResume方法,因为现在的Activity在栈顶了,那肯定是先执行当前Activity的onPause方法了,这样他暂停之后才会执行栈内其他Activity的onResume方法。
(2)在当前Activity界面按下Back键
onPause—–>onStop—–>onDestroy
(3)在当前Activity界面按下锁屏键进行锁屏操作,再从锁屏状态返回到之前的Activity
onPause—–>onStop—–>onRestart—–>onStart—–>onResume
(4)在当前Activity窗体中以弹窗的形式显示另一个Activity
onPause—–>onResume
(5)Activity异常关闭
onSaveInstanceState—–>onStop—–>onStart—–>onRestoreInstanceState
横竖屏切换对Activity生命周期的影响
正常情况下,如果不进行特殊设置的话,横竖屏切换会导致Activity重新创建,也就是会重新执行onCreate方法,在之前Activity是异常销毁的时候会执行他的onSaveInstanceState方法(正常销毁的话该方法是不会执行的)。
android:configChanges不在横竖屏切换的时候进行Activity生命周期的重新加载
orientation表示消除横竖屏的影响
keyboardHidden表示消除键盘的影响
screenSize表示消除屏幕大小的影响
android:screenOrientation直接屏蔽掉横竖屏切换操作,这样横竖屏功能将不能使用
//两者的区别是一个消除了横竖屏的影响,一个是不能横竖屏切换