Activity是Android的四大组件之一

1、Activity的生命周期

        1、onCreate(当前状态不可见)

表示Activity被创建出来
创建Activity时的第一个生命周期,此时可一做一些初始化的东西
比如:做一些初始化的数据,以及初始一些视图,绑定布局等(视情况而定)

        2、onRestart(由不可见变为可见)

表示Activity被重新启动
一般出发情况为将在Activity页面是按Home键回到桌面时再次打开Activity会触发此生命周期

        3、onStart

表示Activity被启动了
此时Activity已经被启动,已经为可视状态,但是页面尚未显示,此状态用户不可见,不可做交互功能

        4、onResume(当前状态为可见)

表示Activity前台启动
此状态用户可以进行交互

        5、onPause(当前状态可见)

表示Activity正在停止
此时理应直接调用onStop。
这是我们可以做一些轻量的数据存储(不建议)和动画
并不建议做耗时操作,这样会影响新Activity的显示
只有onPause执行完毕之后才能执行新Activity的onResume
同时注意:此时如果打卡一个新的透明Activity或者开启一个Dialog会导致无法执行onStop

        6、onStop(当前状态不可见)

表示Activity已经停止
此处不建议执行耗时操作,此处执行耗时操作有可能造成APP卡顿OR线程阻塞

        7、onDeatroy(当前状态不可见)

表示Activity已经被销毁
此处一般情况下用于回收线程,和垃圾回收的操作,否则较容易出现内存泄漏

activity插件集成Java activity._android

 

Activity的启动模式

        1、栈顶复用模式(singlTop)

如果说我们启动一个Activity,如果这个Activity已经被启动那么,这个Activity将不会再次被创建,同时他的onNewIntent的方法将会被再次调用,同时将不会在调用onCreate和onStart

如果已经存在了Activity的实例,但是并不存在于栈顶,那么还是会重新创建的

         2、标准启动模式(standard)

每个Activity在没有修改启动模式之前都为标准启动模式,此模式适用于绝大部分场景,该启动模式可以创建多个Activity的实例,无论这个Activity有没有被创建,每启动一次Activity就会创建一个实例,每个实例也在不同的任务栈中。

注意:谁启动了这个Activity这个Activity就在谁的任务栈中

特别注意:standard的启动模式不能够使用ApplicationContext去启动Activity ,这样做会出现异常情况,因为ApplicationContext启动Activity没有所谓的任务栈,需要将Activity变化为singleTask。这时候Activity的启动就是singleTask模式了

        3、栈内复用模式(singleTask)

相当于一种单例模式 :只要Activity在一个栈中存在,那么无论启动多少次都不会在重新在创建实例,系统则会调用onNewIntent方法。

当启动singleTask启动模式的Activity-A的时候,首先寻找有没有A想要的任务栈,如果没有则创建一个新的任务栈将A放到任务栈中,如果有的话,检查任务栈中是否存在A的实例如果没有,创建并放入任务栈中,如果有的话则系统会将A上方的其他Activity移除,让A位于栈顶,并启动onNewIntent。

        4、单例启动模式(singleInstance) 

此启动模式顾名思义:就和单例模式是一样的,只能够存在一个任务栈中,并且整个系统也只能够有一个实例