Activity 的 36 大难点,你会几个?「建议收藏」 (6)

Context 从字面上理解就是上下文的意思, 在实际应用中它也确实是起到了管理 上下文环境中各个参数和变量的总用, 方便我们可以简单的访问到各种资源。

不同:维护的生命周期不同。Context 维护的是当前的 Activity 的生命周期, Application 维护的是整个项目的生命周期。

使用 context 的时候, 小心内存泄露, 防止内存泄露

4.2 Context 是什么

Context 是什么

它描述的是一个应用程序环境的信息,即上下文。

该类是一个抽象( abstract class )类, Android 提供了该抽象类的具体实 现类( ContextIml )。

通过它我们可以获取应用程序的资源和类, 也包括一些应用级别操作, 例如:启动一个 Activity ,发送广播,接受 Intent ,信息,等。

4.2.1 附加一张 Context 继承关系图

4.3 获取当前屏幕 Activity 的对象

获取当前屏幕Activity的对象

使用 ActivityLifecycleCallbacks
Android 如何获取当前Activity实例对象?

4.4 Activity 的管理机制

Activity的管理机制

Activity的管理机制

面试官问这个问题,想看看大家对Activity了解是否深入:

什么是 ActivityRecord

什么是 TaskRecord

什么是 ActivityManagerService

4.5 什么是 Activity

什么是 Activity

四大组件之一,通常一个用户交互界面对应一个 activity 。

activity 是 Context 的子类,同时实现了 window.callback 和 keyevent.callback ,可以处理与窗体用户交互的事件。

开发中常用的有 FragmentActivity 、ListActivity 、TabActivity( Android 4.0 被 Fragment 取代)

# 5. 进程 5.1 Android 进程优先级

前台 / 可见 / 服务 / 后台 / 空

前台 / 可见 / 服务 / 后台 / 空

5.1.1 前台进程:Foreground process

前台进程:Foreground process

用户正在交互的 Activity( onResume() )

当某个 Service 绑定正在交互的 Activity

被主动调用为前台 Service( startForeground() )

组件正在执行生命周期的回调( onCreate() 、onStart() 、onDestory() )

BroadcastReceiver 正在执行 onReceive()

5.1.2 可见进程:Visible process

可见进程:Visible process

我们的 Activity 处在 onPause()(没有进入 onStop() )

绑定到前台 Activity 的 Service

5.1.3 服务进程:Service process

服务进程

简单的 startService() 启动。

5.1.4 后台进程:Background process

后台进程:Background process

对用户没有直接影响的进程 --- Activity 处于 onStop() 的时候。

android:process=":xxx"

5.1.5 空进程:Empty process

空进程:Empty process

不含有任何的活动的组件。( Android 设计的,处于缓存的目的,为了第二次启动更快,采取的一个权衡)

5.2 可见进程

可见进程

可见进程指部分程序界面能够被用户看见,却不在前台与用户交互的进程。例如,我们在一个界面上弹出一个对话框(该对话框是一个新的 Activity ),那么在对话框后面的原界面是可见的,但是并没有与用户进行交互,那么原界面就是可见进程。

一个进程满足下面任何一个条件都被认为是可视的:

寄宿着一个不是前台的活动,但是它对用户仍可见(它的 onPause() 方法已经被调用)。举例来说,这可能发生在,如果一个前台活动在一个对话框(其他进程的)运行之后仍然是可视的,比如输入法的弹出时。

寄宿着一个服务,该服务绑定到一个可视的活动。

一个可视进程被认为是及其重要的且不会被杀死,除非为了保持前台进程运行。

5.3 服务进程

服务进程

服务进程是通过 startService() 方法启动的进程,但不属于前台进程和可见进程。例如,在后台播放音乐或者在后台下载就是服务进程。

系统保持它们运行,除非没有足够内存来保证所有的前台进程和可视进程。

5.4 后台进程

后台进程

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxfgy.html