Android杂七杂八(一)
Activity
Activity是Android中的一个组件,提供了一个界面用于和用户的交互,用户可以在上面进行操作。
Activity的四种状态:running/paused/stopped/killed
(1)running: 表示Activity处于活动(完全可见)状态此时Activity处于栈顶。
(2)paused: 表示Activity处于失去焦点的状态(被非全屏的Activity覆盖),此时用户无法与该Activity交互
(3)stopped: 表示Activity处于不可见的状态(列入被另一个Activity完全覆盖)
(4)killed: 表示Activity被系统回收了
Activity生命周期:
这是一张很经典的图片
1.Activity启动->OnCreate()->OnStart()->OnResume();
onCreate是Activity被创建的时候调用,是生命周期的第一个方法,在这里我们可以做一些初始化操作。
OnStart是Activity正在启动,此时处于用户可见状态,但是不能交互。
OnResume表明Activity已经处于前台状态,可以与用户交互了。
2.点击Home键->OnPause()->OnStop();
onPause:表明Activity处于pause状态,此时无法与用户交互
OnStop:一般在OnPuse后面执行,表示Activity处于完全不可见的状态
3.点击home后再次回到程序时->onRestart()->onStart()->onResume()
onRestart:表明Activity正在重新启动,从不可见状态变为可见状态
4.退出当前Activity-onPause()->onStop->onDestory()
onDestory:表明Activity正在被销毁,是整个生命周期的最后一个方法。
Activity启动模式
1.standard 默认的启动模式,每次启动都会创建一个新的Activity,不会复用Activity,对内存消耗较大。
2.singleTop 栈顶复用模式,如果要创建的Activity已经在栈顶的话,那么不会重新创建,直接复用,否则,仍然重新创建。
3.singleTask 栈内复用模式,如果要创建的Acitity在栈内已经存在的话,不会重新创建,直接复用在栈内的Activity。
4.singleInstance 单一实例,独享一个任务栈,整个操作系统里面只有一个实例存在,用的较少。
Service
1.声明周期上的区别
执行StartService, onCreate->onStartCommand.当执行stopService,直接调用onDestroy方法。调用者如果没有调用onStop方法,服务会一直在后台运行,下次调用者仍可以stopService.该Service的onCreate方法只会被调用一次。但每次调用startService,onStartCommand方法都会被调用。
执行bindService时,onCreate->onBind.这个时候调用者和Service绑定在一起(与绑定者共存亡)