Android 开发小知识(二)
Android的应用程序组件:四大组件
分别为窗口(Activity)组件,服务(Service)组件,广播接收者(Broadcast receivers)组件,内容提供者(Cotent Provider)组件。
Activity类可以显示一个窗口,每一个Activity提供一个可视化的区域,在这个区域中可以放置各种Android控件。在Activity从创建到销毁的过程中需要在不同的阶段中调用7个生命周期方法。
onCreate:负责加载布局文件,创建需要的空间setContentView(R.layout.activity_login);
onStart:表示Activity开始执行
onResume:表示Activity获取焦点,出现在最上层
onPause:暂停,activity关闭,整个被遮蔽或者部分被遮蔽,都会执行。
onStop:activity停止,整个被遮蔽
onDestroy:activity销毁
onRestart:表示activity由停止重新显示
从中可得出整个Activity的生命周期中包含两层循环,
第一层:onPause->onResume->onPause(焦点生命周期),在Activity焦点的获得与失去的过程中循环,在这一过程中Activity始终是可见的;
第二层:onStop->onRestart->onStart->onResume->onPause->onStop(可视生命周期),在Actvity可见与不可见的过程中循环,在这个过程中伴随着Activity焦点的获得与失去。
整体生命周期:onCreate-…-onDestroy
可视生命周期:onStart-..-onStop
焦点生命周期:onResume-onPause
窗口常用事件:
- 设置窗口标题事件:调用setTitle和setTitleColor方法会触发标题改变事件,也就是调用onTitleChanged方法。
- 键盘按下和抬起事件:按键单击就是按键按下和抬起的组合动作,所以窗口事件中并不能捕获按键单击事件,而只能捕获按键按下和抬起事件,分别为onKeyDown和onKeyUp方法捕获。
- 任何情况下捕捉键盘事件:diapatchKeyEvent方法在任何情况下捕捉到按键事件。
- 回退事件:除了以上3种方法可以捕捉back键的动作外,还可以使用onBackPressed方法单独捕捉Back键的动作。
- 按键长按事件:onKeyLongPress方法
- 屏幕触摸事件:可以用onTouchEvent方法捕捉屏幕的触摸事件。原型如下:public boolean onTouchEvent(MotionEvent event)其中event参数可以获取与触摸相关的信息,如触摸点坐标,触摸状态,如果该方法返回true,说明该方法已经处理完屏幕触摸工作,不会向下传递,否则允许调用下一个可以处理屏幕触摸动作的方法。
- 窗口获得焦点事件:除了使用onResume和onPause方法处理窗口获得和失去焦点的动作,还可以使用onWindowFocusChanged方法来处理。该方法会在onResume和onPause方法后调用。