Java Android线程和电池寿命

Java Android线程和电池寿命,java,android,multithreading,battery,Java,Android,Multithreading,Battery,如果我的应用程序中有几个线程在运行,所有线程都有一个while(true)循环,其中任何一个线程都没有Thread.sleep(),充当一个犹太区动作监听器,这会对我的电池寿命产生负面影响吗?然而,按照常规逻辑,我不确定处理器对while循环的持续监控是否会导致严重的电池损耗 它归结为您在侦听器/while循环中所做的事情。如果它涉及wifi传感器、CPU密集型任务或网络i/o之类的内容,那么很明显,否则你应该做得很好。 主要是一些操作系统功能也在后台执行相同的操作 然而,在安卓系统中似乎有更好

如果我的应用程序中有几个线程在运行,所有线程都有一个while(true)循环,其中任何一个线程都没有Thread.sleep(),充当一个犹太区动作监听器,这会对我的电池寿命产生负面影响吗?然而,按照常规逻辑,我不确定处理器对while循环的持续监控是否会导致严重的电池损耗

它归结为您在侦听器/while循环中所做的事情。如果它涉及wifi传感器、CPU密集型任务或网络i/o之类的内容,那么很明显,否则你应该做得很好。 主要是一些操作系统功能也在后台执行相同的操作


然而,在安卓系统中似乎有更好的方法来处理类似的事情,为什么不试试呢。

我看到了对类似问题的类似回答,但什么是“密集型”?在我看来,拥有一个计数++的while循环似乎很密集,还是我错了?从你的建议来看,你似乎做得很好,因为简单的增量不符合密集的条件,但是一些使用BigInteger/BigDecimal的高阶计算可能会让你的CPU感到不安(我想这不是你的想法)。如激活传感器、位图操作、视频编码解码等之前所述。希望您现在掌握一些窍门。@humblerookie您是否有任何参考资料支持这一点或进行更详细的解释?在普通Java中,任何不调用等待中断的操作(例如显式等待、锁定、同步、I/O)都可以被称为“密集型”,包括一个简单的
count++
——因为CPU将以尽可能快的速度在循环中循环。因此我知道这是对我的问题的后期评论。但是您永远不应该使用while(true)循环来检查可能发生的情况。While(true)将100%使用该线程的cpu,并将耗尽电池。如果使用While(condition)和synchronization(同步)、lock(锁定)以及wait(),则它是更好的选择。永远不要使用无限循环器线程,因为它们使用了大量的系统资源,而这些资源大约是while(true),但与thread.sleep(
有时
)一起使用<例如,代码>有时可能至少等于500(毫秒)。这样可以吗?或者必须使用的最小值是多少?