gpt4 book ai didi

android - Android 中的前台进程

转载 作者:行者123 更新时间:2023-11-29 00:19:10 26 4
gpt4 key购买 nike

关于Process生命周期,Android系统试图尽可能长时间地维护一个应用进程,但最终需要移除旧进程,为新的或更重要的进程回收内存。为了确定保留哪些进程和终止哪些进程,系统根据进程中运行的组件和这些组件的状态将每个进程置于“重要性层次结构”中。重要性最低的进程首先被淘汰,然后是次低重要性的进程,依此类推,以恢复系统资源。

分类之一是:

前台进程:用户当前正在执行的操作所需的进程。如果满足以下任何条件,则认为进程在前台:

1。它承载用户正在与之交互的 Activity。(已调用 Activity 的 onResume() 方法)。

2。它托管绑定(bind)到用户正在与之交互的 Activity 的服务。

3。它托管一个“在前台”运行的服务——该服务调用了 startForeground()。

4。它托管正在执行其生命周期回调之一(onCreate()、onStart() 或 onDestroy())的服务。

5。它托管一个正在执行其 onReceive() 方法的 BroadcastReceiver。

上面给出的场景有哪些现实生活中的例子?我问这个是因为它会帮助我和其他人区分这些情况。

最佳答案

1)当前位于堆栈顶部的应用程序(用户正在使用的应用程序)

2) 具有在任何服务上调用 bindService 的 Activity 的应用程序。这个想法是,如果它终止了该服务,它可能会丢失数据。这方面的一个例子是 facebook 应用程序,它有一个后台服务来每隔一段时间获取数据。如果用户打开它,它将符合条件

3)这是一个声明它向用户界面提供数据的服务。这方面的一个例子是一个 facebook 应用程序,用户在打开它时没有任何 Activity

4)这是一项刚刚开始或刚刚结束的服务。这将是纯粹的运气,但它基本上是说它会尝试让它在杀死它之前干净地启动或完成

5)这是当前正在响应事件的任何应用程序。一个示例是 SMS 应用程序,它刚刚收到传入的 SMS 通知并需要处理它。它将被允许运行直到完成,否则可能会丢失数据。

关于android - Android 中的前台进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24115690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com