我有一个带前台服务和一项活动的应用。该服务可以在启动时自行启动,也可以从活动中启动。我注意到服务在启动时自动启动,内存使用量约为3mB。一旦我打开活动,内存使用量就会上升到大约9mB。一旦活动打开(然后通过后退或主页按钮关闭),即使在数小时和其他应用程序打开后,内存也不会降回到3mB。
我的问题是,是否应该释放活动的内存,或者这是前台服务的预期?
答案 0 :(得分:1)
事实证明,在重新启动整个过程之前,Android不会从内存中释放活动。由于它是一个前台服务,它的过程几乎从未被杀死,所以这不会发生。
解决方案是通过指定:
在自己的进程中运行服务和活动android:process="name"
AndroidManifest.xml中的
答案 1 :(得分:0)
您可以使用System.exit(0)终止进程。它将在仅前台运行时重新启动,因此使用更少的内存。但是,在系统重新启动之前,您的前台服务将停止运行很短的时间。
然而,仅仅因为这可以做到并不意味着它应该完成。当android需要内存时,它会自动执行相同的操作。所以你不应该担心增加的内存消耗。需要时将回收内存。