Я пытаюсь сохранить счетчик обновлений в разделе «Активность» в моем приложении, даже если используемый мной планшет переходит в режим низкого энергопотребления (отключение экрана, выключение клавиатуры).Сначала я попытался сохранить экран в соответствующем макете действий .xml, введя эту строку ( android: keepScreenOn = "true"> ).Это прекрасно работает, когда выбрано мое приложение, но если человек переключается на внешнее приложение, он использует параметр «Тайм-аут экрана», который составляет до 10 минут.Затем я предполагаю, что процессор останавливается, потому что, когда я возвращаюсь к моему приложению, снова запускается метод OnCreate.Который затем возобновляет мой таймер.
Мне было интересно, мог ли кто-нибудь объяснить мне, что я могу делать неправильно с тем, как я реализовал PowerManager.Моя версия Android - targetSdkVersion 26. Вот фрагмент кода.И это в Манифесте
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true">
// Initiate Wake-Lock
private PowerManager.WakeLock mWakeLock = null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
// Initiate Wake-Lock, PARTIAL_WAKE_LOCK: CPU on, Screen Off, Keyboard off
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
mWakeLock.acquire(3600000);
super.onCreate(savedInstanceState);
// More code here of course
//
//
}
Затем я отпускаю Wakelock, когда действие уничтожается.
@Override
protected void onDestroy()
{
if (mWakeLock.isHeld())
mWakeLock.release();
// call the superclass method first
super.onDestroy();
}
В конце я просто хочу, чтобы таймер продолжал увеличиваться с экраном и клавиатурой, чтобыуходить.Любые идеи приветствуются ...