在我的应用程序中,我在与主线程(UI)不同的线程中创建了一项服务。然后,在服务中,我创建了 3 个无限期在后台执行的线程。但是一旦手机进入待机模式,这些线程就会暂停执行!
相反,如果我通过 USB 电缆将手机连接到电脑,我会看到线程正常工作,即使在待机模式下也不会暂停自己。
但是如何不让线程在正常执行中出现这种行为呢?
tnx
解决了:
我设法通过使用 PowerManager 对象简单地实现了这一点,该对象获取了一个 PARTIAL_WAKE_LOCK,使 cpu 从acquire() 到release() 保持活动状态。
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
wl.acquire();
..CPU will stay on during this section..
wl.release();