Activity类似于Frame,创造一个窗体,在这个窗体中可以放置自己的UI。
Activity有4中essential状态:
1)Active/Runing 一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于
并可和用户交互的激活状态。
2)Paused 当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。此时它依然与
窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不
可与用户交互。
3)Stoped 当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时处于 Stoped状态。
4)Killed Activity 被系统杀死回收或者没有被启动时处于 Killed状态。
程序员不能手动结束一个Activity,当调用Activity.finish()方法相当于用户调用BACK键:告诉
Activity Manager 该 Activity 实例完成了相应的工作,可以被“回收”。随后 Activity Manager 激
活处于栈第二层的 Activity 并重新入栈,同时原 Activity 被压入到栈的第二层,从 Active 状态转到
Paused 状态。
Activity生命周期
Activities在系统中作为一个activity stack被管理,当一个新的Activity运行时它放置于栈的顶部,
原来的Activity保持在堆栈的下一层,当新的Activity存在时原来的Activity将不会出现在屏幕的前台中。
The entire lifetime从第一次调用onCreate()开始直到调用onDestroy()结束。一个活动在onCreate()
中做所有的“全局”状态的初始设置,在onDestroy()中释放所有保留的资源。举例来说,有一个线程运行在
后台从网络上下载数据,它可能会在onCreate()中创建线程,在onDestroy()中结束线程。
The visible lifetime,从调用onStart()到相应的调用onStop() 。在这期间,用户可以在屏幕上看见
Activity,虽然它可能不是运行在前台且与用户交互。在这两个方法之间,你可以保持显示活动所需要的资源。
举例来说,你可以在onStart()中注册一个广播接收者监视影响你的UI的改变,在onStop() 中注销。因为活动
在可视和隐藏之间来回切换,onStart()和onStop() 可以调用多次。
The foreground lifetime,从调用onResume()到相应的调用onPause()。在这期间,频繁地在重用和暂停
状态转换——例如,当设备进入睡眠状态或一个新的活动启动时调用onPause(),当一个活动返回或一个新的意图
被传输时调用onResume()。因此,这两个方法的代码应当是相当轻量级的。