在介绍Activity之前,有必要清楚android系统四个基本概念.
Applications Activities Activity Stack TasksApplications
一个Application可以由多个Activity组成,像android提供的默认应用程序Email,Google Map,Brower,等都是Application.
Application有四大组件:Activity, Content provider,Service,Broadcast Receiver接下来会一一介绍这四个组件.
Activities
Activity是application的主体.例如Android默认的Dialer application分别有四个Activity: dialer, contacts list, view contact, and new contact.
Activity Stack
.每次我们启动一个新的Activity都会被添加到Activity Stack,按Back按钮就会做退栈操作.且只有Activity会进行这个操作.view.windows,menus,dialog都不行.
Tasks
我的理解是让Activity Stack更有"型",就是一个队列,这个队列里Activity是队列的元素
通过下图模拟一个操作.更了解Tasks吧
我们启动Contacts程序,首先显示的是List Contacts,这时Home Activity被压入栈底(此图模拟用户操作,按栈的话要倒着看)List Contacts添加至Activity Stack,
接下来操作点击联系人详细信息,编辑联系人.修改头像,选择头像,这一系列的操作.每个Activity会进入进栈操作. View Contact->EditContact->List Pictures->Crop Picture这就形成了Contacts Task.
接下来我们点击Back按钮.或者Home按钮有一定的区别.
点击Back按钮就会进行退栈操作.当前的Activity就会被销毁掉.
点击Home按钮当前的Activity不会被Destroy,且记录Activity的state状态,即最后一次操作的记录,如我们再启动Activity,当前的滚动滑块会在最后操作的状态,而不是初始化在最顶端的状态
Application Activity Task三者关系通过下图(图源来自Androidres.com)更能直观的理解
Activity的四种加载模式(launch mode)
参考资料: