什么是activity?
activity是一个应用程序组件(提供一个屏幕,用来和用户进行交互)负责和用户进行交互的组件
在应用中一个Activity就是一个屏幕界面,我们可以通过setContentView(View view)方法 来显示一些指定控件
也可以监听和处理用户的事件做出响应
Activity 拥有四种基本状态:
1.Active/Running
Activity的生命周期分析
Activity启动 --》onCreate()--》onStart()---》onResume()
点击home 回到主界面 (Activity不可见)onPause()---》onStop() (或者跳转到其他的activity)
当我们再次回到activity时(Activity重新可见)onRestart()---》onStart()--》onResume()
退出当前的Activity时(activity销毁时)onPause---》onStop()---》onDestroy()
Activity销毁的方法 当前的activity 执行finish()方法 或者终止进程
Android进程优先级
前台进程 :处于正在前台与用户交互的activity吗,或者在前台绑定的服务
可见进程 :一个activity可见,没有获取焦点不能与用户交互
服务进程 :service
后台进程 :activity 按home键前台进程进入后台进程,不会立即别kill,当内存吃紧时,被kill
空进程 :随时可以被kill
Android的任务栈(Task)
Activity启动模式
1.standard
默认模式,可以不用写配置。在这个模式下,都会默认创建一个新的实例。因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加。
2.SingleTop
可以有多个实例,但是不允许多个相同Activity叠加。即,如果Activity在栈顶的时候,启动相同的Activity,不会创建新的实例,而会调用其onNewIntent方法。
3.SingleTask
只有一个实例。在同一个应用程序中启动他的时候,若Activity不存在,则会在当前task创建一个新的实例,若存在,则会把task中在其之上的其它Activity destory掉并调用它的onNewIntent方法。
4.SingleInstance
只有一个实例,并且这个实例独立运行在一个task中,这个task只有这个实例,不允许有别的Activity存在。
scheme跳转协议
是页面内的跳转协议
应用场景
- 服务器可以定制化跳转app页面
- app可以通过Scheme跳转到另一个app页面
- 可以通过h5页面跳转app原生页面