首页 > 试题广场 >

遇到下列哪种情况时需要考虑把进程移到前台?

[单选题]
遇到下列哪种情况时需要把进程移到前台?
  • 进程正在运行一个与用户交互的Activity ,它的onResume()方法被调用
  • 进程有一正在运行的BroadcastReceiver,它的onReceive()方法正在执行
  • 进程有一个Service,并且在Service的某个回调函数(onCreate()、onStart()、或onDestroy())内有正在执行的代码
  • 所有选项均正确
  • 进程有一个Service,该Service对应的Activity正在与用户交互
推荐
d
编辑于 2016-04-04 21:15:26 回复(3)
http://developer.android.com/guide/components/processes-and-threads.html
  1. Foreground process

    A process that is required for what the user is currently doing. A process is considered to be in the foreground if any of the following conditions are true:


发表于 2015-04-23 17:13:41 回复(0)
只要主线程有正在做事,那么即为前台进程
发表于 2017-02-22 17:05:47 回复(0)

进程类型:
系统强制销毁进程时,面临一个问题:系统当中可能会运行多个进程,销毁哪些进程合适呢? 这就是我们要讨论的进程的优先级问题。进程被系统强制销毁时,是按照进程的优先级进行的。而进程的优先级主要和应用包含的组件相关。进程优先级从高到低可分为四种:前台进程、可视进程、服务进程、缓存进程。


前台进程(foreground process):需要用户当前正在进行的操作。一般满足以下条件:

  1. 屏幕顶层运行Activity(处于onResume()状态),用户正与之交互
  2. 有BroadcastReceiver正在执行代码
  3. 有Service在其回调方法(onCreate()、onStart()、onDestroy())中正在执行代码
    这种进程较少,一般来作为最后的手段来回收内存

可视进程(visible process):做用户当前意识到的工作。一般满足以下条件:

  1. 屏幕上显示Activity,但不可操作(处于onPause()状态)
  2. 有service通过调用Service.startForeground(),作为一个前台服务运行
  3. 含有用户意识到的特定的服务,如动态壁纸、输入法等
    这些进程很重要,一般不会杀死,除非这样做可以使得所有前台进程存活。

服务进程(service process):含有以startService()方法启动的service。虽然该进程用户不直接可见,但是它们一般做一些用户关注的事情(如数据的上传与下载)。
这些进程一般不会杀死,除非系统内存不足以保持前台进程和可视进程的运行。
对于长时间运行的service(如30分钟以上),系统会考虑将之降级为缓存进程,避免长时间运行导致内存泄漏或其他问题,占用过多RAM以至于系统无法分配充足资源给缓存进程。


缓存/后台进程(***d/background process):一般来说包含以下条件:

  1. 包含多个Activity实例,但是都不可见(处于onStop()且已返回)。
    系统如有内存需要,可随意杀死。
发表于 2017-09-09 13:07:42 回复(0)
A选项这时候应该是正在前台运行,D选项的Service是在后台运行的,所以他需要和对应的Activity交互,就需要到前台。
发表于 2016-03-02 21:51:08 回复(1)
进程正在运行一个与用户交互的Activity ,它的onResume()方法被调用
进程有一正在运行的BroadcastReceiver,它的onReceive()方法正在执行
进程有一个Service,并且在Service的某个回调函数(onCreate()、onStart()、或onDestroy())内有正在执行的代码
进程有一个Service,该Service对应的Activity正在与用户交互
进程有一个service,与请求调用startForeGround()来
发表于 2021-03-30 16:32:15 回复(0)
进程按重要性分类,第一类进程最重要,通常最后被销毁
1:前台(Foreground)进程,与用户当前正在做的事情密切相关。不同的应用程序组件能够通过不同的方法它的宿主进程移到前台。当下面任何一个条件满足时,可以考虑将进程移到前台:
(1)进程正在运行一个与用户交互的Activity,它的onResume0方法被调用
(2)进程有一个Service,该Service对应的Activity正在与用户交互
(3)进程有一个Service被调用startForeground0方法,要求到前台来执行
(4)进程有一个Service,并且在Service的某个回调函数(onCreate0、onStart0、或onDestroy0)内有正在执行的代码。
(5)进程有一正在运行的BroadcastReceiver,它的onReceive0方法正在执行
发表于 2019-10-08 10:32:15 回复(0)
有人可以帮忙解释一下和Service对应的Activity的意思吗
发表于 2019-02-24 18:56:01 回复(0)
答案:D:所有选项均正确!就是说都是对的了!我怎么感觉做题的时候不是这么描述的...
发表于 2018-08-09 10:27:56 回复(0)
听大佬解释,e不也对吗
发表于 2017-08-30 11:13:56 回复(0)
移到前台是什么意思
发表于 2017-03-24 11:26:07 回复(0)
哇头像
移到前台,。。。不是在前台
发表于 2016-09-02 21:57:04 回复(0)
有问题啊,之前是选E
发表于 2015-11-18 19:08:17 回复(0)
进程的某些代码正在被执行或者需要被执行时需要调到前台。
发表于 2015-07-05 09:28:29 回复(0)
D
发表于 2015-04-05 19:49:43 回复(0)
D  楼上解释牛
发表于 2015-03-27 15:52:01 回复(0)
选D。
发表于 2015-03-08 21:05:38 回复(0)
d
发表于 2015-03-04 22:07:50 回复(0)