1.什么是Activity
Android四大组件之一,用于用户交互的界面,用户可以在上面进行点击、滑动的一些操作。
2.Activity的生命周期
Activity启动 --> onCreate() --> onStart() --> onResume()
点击Home键回到主界面(Activity不可见) -->onPause() --> onStop()
当我们再次回到主界面Activity时 -->onRestart() --> onStart() --> onResume()
退出当前Activity时 --> onPause() --> onStop() --> onDestroy()
3.Activity的4种状态
1.running 活动状态,处于Activity的栈顶,用户可见并且可以进行操作。
2.paused 失去焦点的状态,例如被一个透明的Activity覆盖,用户只可见,但不能进行操作
3.stopped 停止状态,完全被一个Activity覆盖掉,或者用户按home键退出,此时用户不可见。
4.killed Activity被系统回收掉。
4.进程的优先级
1.前台进程 当前和用户交互的界面,或者绑定的服务。
2.可见进程 Activity可见,但是用户不能点击。
3.服务进程 用户在后台开启的服务。
4.后台进程 比如用户按了Home键后Activity处于后台,不会被立刻回收掉,会根据内存的情况进行回收。
5.空进程 优先级最低,没有回收的组件,只是处于缓存的目的保留,Android系统可以随时杀死它。
5.Android任务栈
后进的先出,先进的后出,一个任务栈其实就是一个Activity的集合,Android可以通过任务栈有序的管理每一个Activity,要退出应用程序的时候需要把每个Activity清除出栈,这样才能保证应用安全的退出
6.Activity启动模式
1.standard 标准的启动模式,每次启动一个Activity的时候都会创建一个Activity实例,并把它加到任务栈中,启动一个Activity会重新走它的生命周期方法,实在是有点消耗内存资源,因此有了下面2种常用的启动模式。
2.singletop 单一顶部模式,也称栈顶复用模式,启动一个Activity的时候,如果任务栈中有这个Activity,并且这个Activity位于任务栈的栈顶,那么就会复用这个Activity,
3.singTask 单一任务模式,启动一个Activity的时候,它会在整个任务栈中找,有没有这个Activity,如果有就复用它,并把它上面的所有Activity清除出栈。
4.singleInstance 单一实例模式,启动一个Activity会重新再启动一个任务栈,并把它放在新的任务栈中,平常几乎用不到。
7.scheme跳转协议
Android中的scheme是一种页面内的跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便的跳转app中的各个页面;通过scheme协议服务器可以定制化告诉APP跳转哪个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转APP页面等