一、Activity 是什么

1、 Activity 就是有界面的Android 程序的根底,比方只有是有界面的android 软件都是由流动在运行。没有流动的程序,你是看不到界面的,看不到的程序,也有他的用途,比方播送,服务等后盾就能够运行的

2、 一个含有Activity 的程序,必定要有一个作为主页面的

3、 流动能够互相调用,包含本身,也包含其余的程序

二、Activity 创立

一个Activity 要应用起码要有两个因素:

1、 继承自流动的源文件

//AppCompatActivity是Activity的一个子类public class MainActivity extends AppCompatActivity {      @Override//此函数上面会提到     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);//要操作的函数     } }

2、 在清单文件中为源文件申明Activity

<span style="font-size:12px;color:#E8BF6A"><activity </span><span style="font-size:12px;color:#9876AA">android</span><span style="font-size:12px;color:#BABABA">:name</span><span style="font-size:12px;color:#6A8759">=".MainActivity"</span><span style="font-size:12px;color:#E8BF6A">> </activity></span>

这仅仅是一个activity 的应用,如果想一个有界面的的程序,必定要一个主页面,这个时候就要 如下:

<activity android:name=".MainActivity">           //申明属性     <intent-filter>           //这两个配套应用,程序已启动就启动这个activity           //如果别的activity有人应用这个,那么排在后面就是主界面      <action android:name="android.intent.action.MAIN" />     <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

3、 为Activity 设置粗劣的界面

 //此句放在onCreate的super的上面//你的界面文件setContentView(R.layout.activity_main);

三、Activity 启动
1、 显示启动另一个流动

//A代表的是以后的activity名,B代表的是要启动的activity名Intent i=new Intent(A.this,B.class);//启动startActivity(i);

2、 隐式启动( 能够启动别的软件的acitvity)

Action代表的是你要启动的activity的清单属性的action

Intent i=new Intent(“action”);startActivity(i);

四、Activity 生存周期
在任何周期里,执行了finish(); 就间接调用了onDestory() ,activity 间接被销毁了

1、 返回栈

Android 应用堆栈来治理流动,先进后出

如果有2 个页面:A ,B ,

第一种状况:如果A 页面是显示的必定是位于堆栈的顶部。

第二种状况:此时B 页面被A 页面调用进去,B 页面显示,A 页面隐没,B 就在堆栈的顶部,那么A 就在B 的上面

第三种状况:此时B 自毁了,那么只有A 还在堆栈里,A 就在栈顶

2、 活动状态

第一种状况A 对应的是running

第二种状况A 对应的是stopped

第三种状况B 对应的是killed ,A 对应的是Running

3、 回调函数

依照执行程序

//activity一创立就执行onCreate   我的了解就是相当于构造方法//如果activity不在堆栈里,就会从新创立protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main); } //activity在用户可见状态,但不能被操作,能够做一些初始化操作//如果activity在堆栈里则是先执行onStart初始化--->onResume调到栈顶 protected void onStart() {     super.onStart(); } //以后activity属于运行状态,用户可见可操作 protected void onResume() {     super.onResume(); } //以后activity被笼罩,就比方放在后盾,你能够看见,然而操作不了 protected void onPause() {     super.onPause(); } //以后activity齐全看不到//不在栈顶了 protected void onStop() {     super.onStop(); } //以后activity被销毁了 protected void onDestroy() {     super.onDestroy(); }

五、Activity 启动模式

1、 Standard

每次关上一次activity 就创立一个工作到堆栈里,意思就是A 关上B ,B 再关上A( 不是返回) ,此A 非彼A ,两个工作id 不一样,android 默认的启动形式

2、 single Top

会检测该Activity 是否在栈顶,如果在栈顶就复用,如果不是在栈顶就从新创立

3、 single Task

检测是不是在堆栈里,如果在堆栈里,间接把在他下面的都kill 掉

4、 single instance

新建一个堆栈

源码附件曾经打包好上传到百度云了,大家自行下载即可~

链接: https://pan.baidu.com/s/14G-b...

提取码: yu27

百度云链接不稳固,随时可能会生效,大家放松保留哈。

如果百度云链接生效了的话,请留言通知我,我看到后会及时更新~

开源地址

码云地址:

http://github.crmeb.net/u/defu

Github 地址:

http://github.crmeb.net/u/defu