2013-10-03 38 views
0

我有一些事情我的應用程序需要定期做 這些事情 - 如果這樣做,同時運行應用程序本身,影響其性能 - 而言,他們使它非常糟糕服務是否佔用了應用程序的任何資源?

他們已經做下載從大jsons服務器和緩存下載的圖像

如果我在服務中執行所有這些操作,並且該應用程序在服務運行時運行 - 它是否會影響應用程序的任何性能?

該服務會佔用達爾維克分配的任何應用程序內存嗎?

+0

使用Traceview來了解您的「非常糟糕」問題源於何處,而不僅僅是猜測。 – CommonsWare

+0

我該如何使用它? –

+0

http://developer.android.com/tools/debugging/debugging-tracing.html – CommonsWare

回答

0

如果您在單獨的進程中運行該服務,它將對應用程序的其他部分產生較小的影響,但會使與服務的通信更加困難。

你是說你知道這些操作會影響性能嗎?如果是這樣,你看到了什麼跡象?您可能會遇到問題,因爲您試圖在主線程上運行所有內容;如果是這樣,使用後臺線程可能會解決問題。

+0

性能影響是:1。 列表視圖滾動奇怪 2.有時小部件停了幾秒鐘 反應現在我使用intentservice和intentservice內的asynctasks 即使應用程序未運行,我也希望服務能夠運行,但是我想知道應用程序運行時它不會佔用相同的資源嗎? –

+1

沒有必要在IntentService中運行一個asynctask。一個AsyncTask在一個Activity內的一個單獨的線程上運行一個操作;一個IntentService在一個服務的單獨線程上運行。 如果您的服務正在運行,您的應用程序正在運行。您的應用的其他*部分,例如其活動,可能會被暫停甚至銷燬,但您仍然在爲應用使用一些資源。 –

相關問題