我们正在开发一个应用程序,需要前台服务来收集数据。我试图了解Android是如何处理进程和它的活动的,如果它是绑定到前台服务的话。
如果Android需要更多的内存,它能决定扔掉什么呢?整个过程还是仅仅是活动?什么是预期的行为?
后续问题:我们应该倾听哪些事件,以确保我们在发生这种情况时被发出信号?Activity.onDestroy?它肯定会被解雇吗?
发布于 2014-03-04 15:26:57
如果系统认为Android组件占用过多内存,它的进程将被终止。
但是,由于您使用的是前台服务,所以Android将尽力不扼杀您的进程,直到内存资源非常低。对于您的活动,您应该覆盖onSavedInstanceState以保存您的数据,以防您的活动在此场景中被终止。
此外,为了使您的进程被系统杀死以回收资源,您应该尽可能地减少内存占用。您可以在两个进程中将服务和活动组件分开,因为该活动及其UI资源通常比服务占用更多的内存。通过在单独的进程中承载活动组件,可以保护您的服务不会随着活动一起被杀死。
https://stackoverflow.com/questions/22174656
复制相似问题