在我的应用程序中,我在与主线程(UI)不同的线程中创建了一项服务。 然后,在服务中,我创建了另外 3 个在后台无限期执行的线程。 但一旦手机进入待机模式,这些线程就会暂停执行!
如果我通过 USB 电缆将手机连接到电脑,我会看到线程正常工作,即使在待机模式下也不会自行挂起。
但是如何让线程在正常执行时不出现这种行为呢?
tnx
已解决:
我成功地通过使用 PowerManager 对象来实现这一点,该对象获取一个 PARTIAL_WAKE_LOCK,使 CPU 从 acquire() 到 release() 保持 Activity 状态。
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() 调用保持 Activity 状态。
这样即使手机进入待机模式,线程也一定会运行。
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();
关于android - 如何在待机模式下不让线程自行停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10725711/