在学习Android开发的时候最早接触到的组件就是Activity了,应用程序总是从主Activity开始运行,根据activity的生命周期,系统在主Activity中首先调用onCreate(Bundle savedInstanceState)方法,其中传入的参数savedInstanceState保存了一些关于这个activity实例的信息,它经由系统或用户调用onSaveInstanceState(Bundle outState)之后获得,onSaveInstanceState(Bundle outState)常常需要override因为要保存一些用户信息,至于何时调用在哪里调用可以看看它的API讲解。系统紧接着调用setContentView(int);其传入的参数一般是布局文件的ID。
本文并不是要详细复述activity的知识,目的在于总结一些编程是需要注意和理解的知识点:
(1)一般情况下我们并不需要显式地调用finish()
或finishActivity()
结束一个失去焦点的activity,当系统因为设备资源不够用时会自动结束它。主动的调用finish()
或finishActivity()很多时候会降低用户体验。
(2)当一个activity失去焦点后系统会首先调用
protectedvoidonPause(),之后系统会随时因为资源紧张而完全结束这个activity,因此在这个activity中产生的一些需要保存的用户数据最好在
protectedvoid onPause()中先进行保存。
(3)用户调用onSaveInstanceState(Bundle outState)保存activity的相关信息时在其内部调用
Bundle
类的putXxxx(key,value)以key-value pairs的形式保存activity数据,获取数据是在onCreate(Bundle savedInstanceState)中,调用savedInstanceState.getXxxx(key)即可获得。
(4)对于由Activity A 启动 Acivity B时回调执行顺序是先回调Activity A的
按顺序回调Activity B的onPause() 方法,然后
onCreate()
,onStart()
, onResume()
方法,接着才可能回调Activity A的
onStop() 方法.
关于activity 暂时先列这么多吧,后续有新的理解再更新。