在我的应用程序中,我有一个在与主线程(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();