Activity是Android的基本工作单元,Android应用程序至少包括一个Activity。
大部分Activity都有一个显示界面,类似一个HTML网页。
每一个Android应用程序(Application)都对应一个Context对象,通过该Context对象可以访问应用程序中的各种系统服务和资源。例如:context.getResources()方法就可以返回该Context对应的应用程序中的资源对象,并通过该对象访问具体的资源,例如一个图标、一个字符串等。应用程序可以包含多个Activity,但只有一个Context对象。
每一个Activity有且只有一个Window;Window是Activity的界面容器,可以包含ViewGroup;ViewGroup中定义了具体的界面元素,例如一个按钮、一个文本框等。setContentView()用来给该Window设置一个具体的视图组(ViewGroup),Window是Activity被创建时系统自动创建的,应用程序不能再添加或者删除。从界面上来看,Window对应的是应用程序的标题栏和边框。
Activity的生命周期可分为全生命周期、可视生命周期和活动生命周期。全生命周期是从Activity建立到销毁的全部过程,始于onCreate(),结束于onDestroy()。可视生命周期是Activity在界面上从可见到不可见的过程,开始于onStart(),结束于onStop()。活动生命周期是Activity在屏幕的最上层,并能够与用户交互的阶段,开始于onResume(),结束于onPause()。
onCreate()中初始化Activity所能使用的全局资源和状态。
onStart()一般用来初始化或启动与更新界面相关的资源
调用onResume()获取屏幕焦点(直白说,就是可以进行点击屏幕以响应事件)
onPause()常用来保存持久数据,如界面上的用户的输入信息等
onStop()一般用来暂停或停止一切与更新用户界面相关的线程、计时器和服务
onDestroy()中释放这些资源。
onPause()和onSaveInstanceState()的区别
onPause() 一般用于保存持久性数据,并将数据保存在存储设备上的文件系统或数据库系统中的
onSaveInstanceState() 主要用来保存动态的状态信息,信息一般保存在Bundle中
• Bundle是能够保存多种格式数据的对象
• 用onSaveInstanceState()保存在Bundle中的数据,系统在调用onRestoreInstanceState()和onCreate()时,会同样利用Bundle将数据传递给函数
函数的调用顺序:onCreate() → onStart()→onResume() → onPause()→ onStop()→ onDestroy()
• 调用onCreate()函数分配资源
• 调用onStart()将Activity显示在屏幕上
• 调用onResume()获取屏幕焦点,可以进行点击屏幕操作
• 调用onPause()、onStop()和onDestroy(),释放资源并销毁进程