2015-10-04 39 views
0

我正在写一个android应用程序,可以使用openCV将单个图像拼接成全景图像。拼接部分工作正常。现在我正在做一个服务中的拼接,该服务作为一个单独的进程运行,该进程使用startForeground()(同时拼接发生为AsyncTask)。该过程适用于四到五个图像,但当超过这个范围时,需要大约300-350MB的内存,并因此导致服务中断。有没有办法让服务无限期运行?如何保持内存昂贵的Android服务始终?

+0

无限期地运行服务无法解决您的问题。您将不得不分析有关服务的内存消耗并对其进行优化。 –

+0

我的服务运行完美,直到我正常调用'stopself()'。但它被android杀死以保留内存,并且由于该服务调用了本地openCV方法,该方法执行一些代价高昂的操作,所以我不能考虑优化。 – Raghuram8892

+0

你需要一些成本削减;) –

回答

0

所以我终于找到了解决问题的方法。拼接图像之前,我缩小到5倍,然后拼接。现在我的应用程序不消耗超过100 MB和Android不强制关闭我的应用程序。虽然这会降低所得图像的质量,但对我来说很好。

谢谢!!!