2016-01-31 188 views
1

任何时候我尝试关闭我的前台服务时,即使没有打开任何活动,我的应用程序也会继续运行。我做了一些分配和函数跟踪测试,但注意到,但是,我的应用程序仍然是打开的,并且使用了几MB的内存,关闭服务后我的方法都没有被调用。只有Java和Android的东西。哦,看起来我的应用程序在这期间也会泄漏内存。根据我的应用程序的Java堆,有数千个FinalizerReferences实例化。这会导致这么大的问题,或者为什么会出现这种情况?应用程序在关闭后运行

这是它的样子:

enter image description here

回答

0

这就是android如何工作,你拥有的每一项活动和服务,只在一个称为UI线程的线程内执行,它本身和你创建的其他线程在一个进程中运行。直到systme有新的东西,足够的内存,所以如果你的用户要再次运行程序它推出的尽可能快

Android不关闭此进程。但是您可以使用exit()函数终止整个过程。

其实活动或服务是不是哪个程序进程内的UI线程中运行的程序,但一段代码,现在这个过程是你的程序,它甚至可以用广播接收器的呼叫启动!

1

它的默认Android属性,应用程序继续在后台运行,即使在关闭了你的应用程序后,一些功能如服务等在后台运行。要么你强迫exis的应用程序,我wouldnt建议,或让android自动关闭它,当它需要

+0

我不认为这是应该发生的。如果我没有启动服务并关闭我的活动,那么它会正常停止,但我认为在关闭活动和前台服务后,我的应用程序使用资源是正常的。它使用大约10 MB的RAM并且不会停止。我认为,如果没有更多的生活环境,那么我的应用程序将自动终止。 – Ukubu

+1

怎么样的图像视图,位图..你释放他们 –

+0

嗯,我有一个单一的存储一些应用程序特定的东西。其中之一是位图的列表。在关闭应用上下文后,我需要对他们做什么吗? – Ukubu

0

调用finish()当你想完全关闭应用程序应杀死应用程序并释放它的资源。

相关问题