如何在待机模式下不让线程停止它们



在我的应用程序中,我有一个在与主线程(UI(不同的线程中创建的服务。然后,在服务中,我创建了另外 3 个在后台无限期执行的线程。但是一旦手机进入待机模式,这些线程就会暂停执行!

相反,如果我通过USB电缆将手机连接到PC,则会看到线程正常工作,即使在待机模式下也不会挂起它们。

但是如何不让线程在正常执行中具有这种行为呢?

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();

我设法通过使用 PowerManager 对象来获得这个,它获取了一个PARTIAL_WAKE_LOCK,使 CPU 从 acquire(( 调用到 release(( 调用保持活动状态。

这样,即使手机进入 stanbdy 模式,线程也肯定会运行。

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();

最新更新