你的位置:首页 > 操作系统

[操作系统]Android回炉系列之四大组件之首Activity


        有段时间没有认认真真研习过android了,android毕竟是我进这个软件开发圈子接触的第一门技术,android已经成了口头禅之类的东西了.当初学习android的时候大都是草草了事浮于表面,很多知识点没有深入学习,导致现在基础不是很牢靠.在遇到某些高度技术问题的时候思路容易断,所以我决定用博客来记录回炉学习的过程.网上博客简直多如牛毛,而我想写一些属于自己的东西,就是话比较多比较啰嗦但是很容易理解的东西,不会出现很多让新手看不懂的代码,出现的代码每行我都会注释是什么意思.我一直把自己当新手.剑圣有句台词就说"真正的大师永远怀着一颗学徒的心".哈哈哈,虽然我还不是大师.

       首当其冲的就是Activitty,android四大组件之首.几乎可以说是最重要的一个组件.今天就从Activity开始回炉吧.

一.什么是Activity?

      Android的四大组件分别是Activty/Service/Broadcast Receiver/Content Provider.  Activity翻译过来就是活动的意思,在android里面可以理解成用户能看到的一个界面并且和用户能产生交互.可以说,一个app里面你所有能看到的东西都是Activity.我们可以在一个Activity上放很多东西,比如列表,图片,按钮等等.然后通过别的组件使这些"死"的东西变成"活"的.如何把他们变成活的,都会在后续的博客中陆续更新.

 1.1 Activity的生命周期

     要学习Activity就不得不提起他的生命周期,至关重要!生命周期中每一段都在Activity的一生中扮演着独一无二不可替代的角色,就像我们人的一生中也有很多至关重要的时期一样.

     要了解生命周期就必须对Activity的运行状态有深刻的了解,一个Activity大致经过四个运行状态.

    a.运行状态:Activity处于前台,即你可以看的见的,并且可以获得焦点.(获得焦点就是可以操作可以交互的意思)

    b.暂停状态:Activity仍然处于前台,仍然可见,但是失去焦点.举一个很常见的场景你就明白了.比如你正在玩微信,此时来了一条短信,这条短信的对话框并没有占满整个屏幕而是一小块,此时你既能操作回复短信,又能看到部分微信的界面但是无法操作微信界面.这时就称当前微信的Activity处于暂停状态.

    c.停止状态:Activity不可见,并且失去焦点.比如你从一个人的对话框页面退出了去看朋友圈了,此时就说那个对话框页面Activity处于停止状态.你看不到他了.

    d.销毁状态:Activty彻底结束,好比一个人的一生就结束了.只不过人生无法重来,Activity却可以Restart~

   当你了解了一个活动的运行状态后就应该去了解下他具体的生命周期是怎么运作的了.每一个运行状态背后都藏着不为人知的生命周期.哈哈~

   Activity一共有七个生命周期:onCreat()  onStrat()  onResume()   onPause()  onStop()  onDestory()  onRestart().大家看英文就应该能大致知道他们各自的意思.细心的话可以发现他们是首尾对应的.

//onCreat是生命周期的第一个方法,意思就是创建!也就是说当一个Activity创建的时候是调用这个方法.在这方法里可以做一些初始化操作,比如加载布局,初始化方法等等

   @Override protected void onCreate(Bundle savedInstanceState){

         super.onCreate(savedInstanceState);

         setContentView(R.layout.activity_main);}

 

//onStart是当Activty创建好之后显示到屏幕上时调用的方法,也就是说此时你可以看到Activity但还不能交互

   @Override protected void onStart() {

         super.onStart(); }

 

//onResume被回调的时候就是可以和Activity产生交互了 比如你点击一些按钮,图片什么的

    @Override protected void onResume() {

         super.onResume(); }

 

 //onPause方法即暂停 这个方法就是在上面提到的暂停状态的时候调用,比如你正在发短信突然来了个电话此时就需要调用这个方法来保存你正在发短信的页面,可以在里面写一些方法用来保存你正在输入的内容,不然等你电话挂了 你打的短信内容全都没了,嗯这种用户体验谁都不想要有吧? 这就是这个方法的作用!

    @Override protected void onPause() {

        super.onPause(); }


//onStop方法即是停止 紧跟在onPause后面调用 一个活动要想停止,首先得暂停  比如你按home键并不按返回键,此时只是将Activity最小化并没有销毁

    @Override protected void onStop() {

       super.onStop(); }

 

 //onDestory即销毁 紧跟在onStop后面 同理一个活动要销毁前必须先停止

    @Override protected void onDestroy() {

       super.onDestroy(); }

 

//onRestart方法即重启  当一个Activity被销毁后系统重新开启这个activity是调用这个方法

@Override protected void onRestart() {

      super.onRestart(); }


      如果说这样的话你依然对生命周期的过程不完全理解的话,我只能说那很正常,因为我写的不太好!建议大家用log的方法将日志打印出来,在两个Activity之间来回切换看看这些方法到底怎么调用的.