2014-07-09 80 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只会在循环中快速循环尽可能。 –