天天看点

Android四大组件学习(一)---Activity

       在学习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失去焦点后系统会首先调用

protectedvoid

onPause(),之后系统会随时因为资源紧张而完全结束这个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的

onPause() 方法,然后

按顺序回调Activity B的

onCreate()

,onStart()

, 

onResume()

方法,接着才可能

回调Activity A的

onStop() 方法.

       关于activity 暂时先列这么多吧,后续有新的理解再更新。

继续阅读