首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相同进程中的Android服务和内存发布

问相同进程中的Android服务和内存发布
EN

Stack Overflow用户
提问于 2011-11-28 14:28:26
回答 1查看 1.2K关注 0票数 2

我有一项服务,这是前景。它在本地绑定到一个(或多个)活动,因此活动和服务在同一个进程中运行。可能有一段时间没有显示活动(典型的音乐播放器用例)。

如果服务和活动处于相同的进程中,那么除非服务也被终止,否则操作系统无法收回该活动的内存?据这篇文章说,在我看来答案是肯定的。

如果最后一个是真的,我是否应该创建两个独立的过程:

  • 对系统/其他应用程序友好吗?
  • 更有信心我的服务不会被杀?

或者,把活动和服务结合在一起并不是什么大不了的事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-28 15:04:15

我有一项服务,这是前景。它在本地绑定到一个(或多个)活动,因此活动和服务在同一个进程中运行。可能有一段时间没有显示活动(典型的音乐播放器用例)。

“典型的音乐播放器用例”不会使用bindService() IMHO。前台服务不会使用bindService() IMHO。至少,除了用于活动->服务通信的bindService()之外,您还需要startService(),以便在unbindService() (例如,用户按回按)之后,服务可以保持运行。

如果服务和活动处于相同的进程中,那么除非服务也被终止,否则操作系统无法收回该活动的内存?

除非终止整个进程,否则活动的内存永远不会“被操作系统收回”。很不幸,这一点在文档中并不完全清楚。。

如果用户按回键退出该活动,或者您在活动上调用finish(),则应该垃圾收集该活动,假设没有任何东西导致它挂起(例如,由一个静态数据成员引用)。

我应该创建两个独立的过程吗?

绝对不是。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8297322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档