2013-09-24 2 views
7

У меня есть этот код:Что означает «PowerManger.FULL_WAKE_LOCK устарело»?

wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP 
      | PowerManager.ON_AFTER_RELEASE, "MyWakeLock"); 

И FULL_WAKE_LOCK зачеркнуто, и это говорит «PowerManger.FULL_WAKE_LOCK устарела». Код работает. Но что это значит? И может ли это вызвать какие-либо проблемы?

ответ

2

Дополнительную информацию можно получить, нажав here. В нем есть все подробное описание того, что делает. Это не вызовет проблем для текущих версий, но в будущем может.

2

PowerManager.FULL_WAKE_LOCK

Эта константа осуждался в уровне API 17. Большинство приложений должны использовать FLAG_KEEP_SCREEN_ON вместо этого типа блокировки следа, как это будет правильно управляться платформой как пользователь перемещается между приложений и не требует специального разрешения.

Уровень блокировки взлома: гарантирует, что подсветка экрана и клавиатуры включена при полной яркости.

Если пользователь нажимает кнопку питания, то система FULL_WAKE_LOCK будет неявно выпущена системой, что приведет к отключению экрана и процессора. Контраст с PARTIAL_WAKE_LOCK.

4

Устаревшее означает, что эта функция может быть удалена в будущих версиях Android или что добавлена ​​альтернатива. Он не удаляется немедленно, чтобы обеспечить обратную совместимость и дать вам время для соответствия новому стандарту.

Который, согласно the documentation:

«В большинстве приложений следует использовать FLAG_KEEP_SCREEN_ON вместо этого типа блокировки следа, как это будет правильно управляться платформой как пользователь перемещается между приложениями и не требует специальное разрешение ".

Так что это не вызовет никаких проблем сейчас, но в будущих версиях Android это возможно. Вы можете узнать больше об устаревании here.

+0

Я не могу просто перезаписать флаг FLAG_KEEP_SCREEN_ON, и в документации не ясно, как это сделать. Вы можете помочь? – Dpedrinha

+1

@Dpedrinha, используйте WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON –

0

Согласно Википедии,

Устаревшие означает, что «Вы все еще можете использовать это, но не рассчитывайте на это, потому что мы, вероятно, заменить его чем-то другим (или удалить его полностью) в будущих версиях программного обеспечения.»

В общих чертах это означает, что есть лучший способ сделать это, и следует избегать устаревшего метода. Кроме того, устаревшие методы также не совместимы с обратной совместимостью и могут быть удалены в будущих версиях.

На сайте разработчика это четко упоминается

«срок службы аккумулятора устройства будет в значительной степени зависеть от использования этого API. Не приобретать PowerManager.WakeLocks, если вы действительно не нуждаетесь в них, использовать минимальные уровни возможно, и быть обязательно выпустить их как можно скорее ».

Смежные вопросы