У меня проблемы с вейк-замками.По сути, у меня был wakelock, запущенный в моем потоке таймера, doInBackground AsyncTask на протяжении всего времени моего приложения (это фоновое приложение для измерения производительности).Затем я решил, что экран должен включаться каждые 10 минут или около того.Поэтому я создал другой класс, расширяющий AsyncTask, и поместил приведенный ниже код в его doInBackground, но теперь экран не включается снова.Я должен отметить, что я запускаю этот поток и два других потока, которые являются AsyncTask с методами doInBackground от onCreate.
Вот мой новый внутренний класс, выполняющий пробуждение: по сути, все, что он должен делать, это пробуждать экран телефонакаждые 10 минут, пока мои два других фоновых потока не установят свои логические значения true.
private class WakeUp extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... arg0) {
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, getClass().getName());
do{
try {
Thread.sleep(WAKEUP_EVERY); //600000ms
} catch (InterruptedException e) {
e.printStackTrace();
}
wl.acquire();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
wl.release();
}while(!timeCompleted || !transferCompleted);
return null;
}
}