2015-10-04 65 views
0

我正在寫一個android應用程序,可以使用openCV將單個圖像拼接成全景圖像。拼接部分工作正常。現在我正在做一個服務中的拼接,該服務作爲一個單獨的進程運行,該進程使用startForeground()(同時拼接發生爲AsyncTask)。該過程適用於四到五個圖像,但當超過這個範圍時,需要大約300-350MB的內存,並因此導致服務中斷。有沒有辦法讓服務無限期運行?如何保持內存昂貴的Android服務始終?

+0

無限期地運行服務無法解決您的問題。您將不得不分析有關服務的內存消耗並對其進行優化。 –

+0

我的服務運行完美,直到我正常調用'stopself()'。但它被android殺死以保留內存,並且由於該服務調用了本地openCV方法,該方法執行一些代價高昂的操作,所以我不能考慮優化。 – Raghuram8892

+0

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

回答

0

所以我終於找到了解決問題的方法。拼接圖像之前,我縮小到5倍,然後拼接。現在我的應用程序不消耗超過100 MB和Android不強制關閉我的應用程序。雖然這會降低所得圖像的質量,但對我來說很好。

謝謝!!!