【磨叽教程】Android进阶教程之在Android系统下各进程之间的优先级关系

Android系统根据组件状态区分进程重要性,决定进程生命周期。应用进程可能因Service、BroadcastReceiver等活动而被视为前台或可见,影响系统内存管理。了解进程优先级有助于优化应用性能,防止意外终止。例如,BroadcastReceiver执行后应及时调度JobService维持进程活跃。
摘要由CSDN通过智能技术生成

首先应用进程的生命周期并不由应用本身直接控制,而是由系统综合多种因素来确定的。**Android系统有自己的一套标准,它可以根据这套标准区分当前运行的所有进程的重要性。**这是 Android 非常独特的一个基本功能。(关注公众号“计算机自学平台“获取更多信息)
在大多数情况下,**每个 Android 应用都在各自的 Linux 进程中运行。**当需要运行应用的一些代码时,系统会为应用创建此进程,并使其保持运行,直到不再需要它或者系统内存不足需要回收以供其他应用使用才会终止它。
我们作为应用开发者必须了解不同的应用组件(特别是 Activity、Service 和 BroadcastReceiver)对应用进程的生命周期影响。这些组件使用不当会导致你的应用进程直接被终止,比如系统需要执行重要任务时。
举个我们常见的例子:
在我们使用 BroadcastReceiver 的 BroadcastReceiver.onReceive() 方法中接收到一个 Intent 时,它会启动一个线程,并从该函数返回。可是一旦返回,系统会认为 BroadcastReceiver 不再处于活动状态,然后就不再托管进程(除非其中有其他应用组件处于活动状态)。因此,系统可能会随时终止进程以回收内存,这样会导致在进程中运行的衍生线程直接终止而给我们的应用带来重大影响。
解决办法:
要解决这个问题,通常可以从 BroadcastReceiver 调度 JobService,这样系统就知道进程中还有处于活动状态的任务正在进行中,从而不会去主动终止它。
但是,在系统内存不足的时候,系统还是会去终止一些应用的进程来释放

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值