2014-07-09 114 views
1

如果我的應用程序中有多個線程運行,所有線程都有一個while(true)循環,並且任何線程中都沒有Thread.sleep()作爲貧民區動作監聽器,這會否定影響我的電池壽命?但是,通過規律的邏輯,我不確定處理器是否持續監控時間循環會導致顯着的電池損耗?Android線程和電池使用時間

+0

所以我知道這是對我的問題的遲發評論。但是你永遠不要使用while(true)循環來檢查可能發生的情況。 雖然(真)會用盡線程的CPU 100%,並將耗盡電池 – NeoMime

回答

1

它歸結爲你在listeners/while循環中做了什麼。如果它涉及的東西,如無線傳感器或CPU密集型任務或網絡I/O,那麼它很明顯,否則你應該做的很好。 主要是一些OS功能在後臺也是這樣做的。

然而,似乎有更好的方法來處理像這樣的東西在Android爲什麼不試試這些。

+0

我看到類似的回答類似的問題,但什麼構成「密集」? 在我看來,有一段時間循環,確實計數++似乎密集,或者我錯了嗎? – NeoMime

+0

根據你的建議,你似乎做得很好,因爲簡單的增量沒有資格被強化,但是有些BigInteger/BigDecimal的高階計算能夠讓你的CPU投擲(我認爲這不是你的想法)。更正如前面提到的那樣,激活傳感器,位圖操作,編碼解碼視頻等(如果有的話)都是密集型的。希望你現在能夠掌握它。 – humblerookie

+0

@humblerookie你有什麼參考資料可以支持這個或者更詳細的解釋嗎?在普通的Java中,任何不會引起等待中斷的事件(例如顯式等待,鎖定,同步,I/O)被認爲是「密集型」,包括一個簡單的「count ++」 - 因爲CPU只會在循環中快速循環儘可能。 –