Некоторым приложениям, например играм или фильмам, экран должен оставаться включенным. Некоторые API Android автоматически оставляют экран включенным. В других случаях вы можете установить флаг, чтобы экран оставался включенным вручную.
Вручную держать экран включенным
Чтобы экран устройства оставался включенным, установите флаг FLAG_KEEP_SCREEN_ON
в своей активности. Этот флаг можно устанавливать только в действии, а не в службе или другом компоненте приложения. Например:
Котлин
class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) } }
Ява
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } }
Другой способ сохранить экран включенным — установить атрибут android:keepScreenOn
в XML-файле макета вашего приложения:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:keepScreenOn="true"> ... </RelativeLayout>
Использование android:keepScreenOn="true"
эквивалентно использованию FLAG_KEEP_SCREEN_ON
. Вы можете использовать любой подход, который лучше всего подходит для вашего приложения. Преимущество программной установки флага в вашей деятельности заключается в том, что он дает вам возможность позже программно очистить флаг и тем самым позволить экрану выключиться.
Если приложение с флагом FLAG_KEEP_SCREEN_ON
переходит в фоновый режим, система позволяет экрану выключиться в обычном режиме. В этом случае вам не нужно явно сбрасывать флаг. Если вашему приложению больше не требуется держать экран включенным, вам следует снять флаг. вызвав clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
.
Режим Ambient для телевизора
На телевизионных устройствах используйте FLAG_KEEP_SCREEN_ON
, чтобы предотвратить переход устройства в Ambient Mode во время активного воспроизведения видео. Если для активности на переднем плане не установлен FLAG_KEEP_SCREEN_ON
, устройство автоматически переходит в Ambient Mode после периода бездействия.