一.Android应用程序类型:
(1)前台应用程序--需要考虑Activity的生命周期
只能运行在前台的应用,当他不可见时就会被挂起,例如:游戏应用;
(2)后台应用程序--Service 和 BroadcastReceiver是后台应用程序的驱动者
交互非常有限的一个应用,除非在配置期间,的其他生命期间都是隐藏的,例如:闹钟;
(3)间歇性应用程序--Activity、Service 和 BroadcastReceiver、以及Notification联合使用
当应用可见时,更新UI;当应用不可见时,则发通知(或其他方式)来告知最新动态给用户;
(4)Widget 和 Live Wallpaper:
可以创建一些交互式的可见组件,位于用户主屏幕,Widget主要用于显示动态信息,例如:天气、电池电量、时间日期等;
二.Android应用程序的组成部分
介绍一下组件:
1.Activity--实现UI,使用View或Fragment来布局和显示信息,以及响应用户动作;
2.Service--不可见,可以更新数据源和Activity,可以触发通和广播Intent;
3.ContentProvider--一个可共享的持久数据存储器。他是应用程序之间共享数据的首选,可以配置自身应用的CP来提供给其他应用使用,也可以使用其他应用提供的CP,Android本地提供CP的有很多,例如:联系人信息,媒体库信息等;
4.Intent--一个强大的应用程序间的消息传递框架。也可启动/停止Activity、Service。也可以广播消息;
5.BroadcastReceiver--Intent监听器。可以自动的启动应用程序来响应某个收到的Intent,多用于事件驱动的应用程序;
6.Widget--是BroadcastReceiver的特殊变体;
7.Notification
三.Android 的Activity
- Activity+布局+视图+Fragment = UI;
- Activity栈
(1)每个Activity的状态由其在Activity栈中的位置决定;
(2)Android内存管理器再决定终止哪个应用程序来释放资源时,也是通过Activity栈来决定Activity的优先级的,进而决定终止哪个应用程序;
(3)Activity栈是当前所有正在运行的Activity后进先出的集合;
3.Activity状态
(1)活动状态--位于栈顶、可见、具有焦点、可以接受用户输入;
Android会不惜一切代价的来保持他的活动状态,必要时销毁下部的Activity以释放资源供其使用;
当另外一个Activity活动时,他将处于暂停状态;
(2)暂停状态--一般情况下可见、但是没有焦点、不能接收用户的输入事件;
在极端的情况下才会被系统收销毁来释放资源;
当他完全不可见时,则处于停止状态;
(3)停止状态--可不见;
仍处于内存中,并保留状态信息,但是当系统需要释放内存时,他们是首选对象;
当Activity处于暂停/停止状态时,保存UI和数据信息非常重要;
(4)终止状态--退出或关闭的Activity、从栈中移除;
4.Activity生存期与状态的监控