温习Android基础---Activity

来源:互联网 发布:js 浮点数 编辑:程序博客网 时间:2024/05/18 13:05

我重新复习Android基础的第一篇博客,最先说的,肯定是开发过程必不可少的Activity啦,作为四大组件之一,Activity是我们日常开发最常用的一个组件了,先要学习Activity,那么就要想了解它是什么,有什么作用。
1. 它是什么?
Activity是一个布满整个屏幕的界面,它是悬浮在屏幕最顶端的一个交互窗口。
2. 它有什么作用?
它是用来展示布局以及指定控件的一个容器,在Activity里面的操作都是与用户密切相关的比如用户的点击、滑动、手势等等操作,简单来说,它是一个负责与用户交互的组件。
接着我们要了解它的生命周期,在开发中,它的生命周期对我们起着很关键的作用,我们可以根据它的生命周期去做不同的处理,比如在销毁之前保存用户数据,在启动加载布局,在重新展示的时候刷新数据等等,
生命周期的图网上一搜一大把,我还是自己画一下巩固基础,下面直接上图:
这里写图片描述
有点丑,哈哈!~
首先我们启动Activity,它一开始执行的是onCreate,在onCreate中我们会使用setContentView去加载布局,然后就是到onStart方法了,onStart方法过后就执行到onResume,其实onStart方法我倒不经常用,经常用的应该是onResume方法了吧,onResume方法是在界面与用户交互之前调用的,当调用到这个方法的时候,就说明这个时候activity处在最顶端,简单来说,就是显示着了,然后当我们按下Home键的时候,系统会超快速的调用onPause这个方法,为什么呢,因为如果这个方法返回不够快的话,那么先要恢复其他activity的时候就换很慢,要等这个方法处理完,然后这个activity界面不可见的时候调用onStop才能够显示恢复的其他activity,onPause这个方法在切换页面的时候,要被替换的activity就会调用这个方法啦,当它重新显示出来的时候就会直接调用onResume,但是当界面不可见的时候,就会调用到onStop方法了,总之,页面不可见且这个activity还没有被系统回收的情况下,就是出于stop状态,所以,当要重新显示出来的时候就会调用onReStart—–>onStart—–>onResume这样的顺序重新显示,然后当用户强制销毁或者系统回收这个activity的时候,则会调用onDestroy(图片写错了单词=_=)这个方法,调用过后,这个activity就是不存在了的,如果需要重新显示这个activity,则会重新创建,流程是onCreate—–>onStart—–>onResume这样的
了解了这个生命周期之后,我们应该怎么使用Activity呢,创建项目,最少必须要有一个Activity,而这个Activity就是每次APP启动的时候第一个展示出来的activity,在AndroidManefest文件中可以看到那个是启动的时候显示的一个页面,只需要找到:

<application        android:name=".Base.BaseApplication"        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:roundIcon="@mipmap/ic_launcher_round"        android:supportsRtl="true"        android:theme="@style/AppTheme">        <activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN"/>                <category android:name="android.intent.category.LAUNCHER"/>            </intent-filter>        </activity>    </application>

其实也可以顺便说下application这个标签,这个是控制整个app的一个标签,我们可以在里面配置app在桌面的名字、图标,还有APP整体样式,然后我们看到下面那个activity标签,怎么判断是第一个显示出来的页面呢,就看intent-filter这个里面的action跟category,而action中的android.intent.action.MAIN和category中的android.intent.category.LAUNCHER就是控制这个页面作为app的启动页,知道了这些之后,如果要启动其他的activity怎么办?很简单,Android中提供了一个Intent类,看这个单词的意思就知道这个是一个意图,简单来说就是想要干什么的意思,那么要怎么使用呢,因为这个类不是静态类,所以我们需要new出来使用:

Intent intent = new Intent(MainActivity.this,XXXXActivity.class);startActivity(intent);

启动Activity很简单吧,就是new出来,然后当前的Activity写进来作为第一个参数,然后把需要启动的Activity写到第二个参数,然后调用Activity中的方法startActivity就可以启动第二个Activity了,这里要特别注意一点,因为没有在AndroidManefest中配置新的Activity的话,那么启动会报异常,具体就是找不到这个Activity,所以直接crash掉,所以每创建一个新的Activity,都必须要去AndroidManefest中配置一下,哈哈~就说这么多,下班回家~

原创粉丝点击