Guides
Plan-enterprise-icon
Expo Application Services
API Reference

KeepAwake

expo-keep-awake provides a React hook that prevents the screen from sleeping and a pair of functions to enable this behavior imperatively.

Platform Compatibility

Android DeviceAndroid EmulatoriOS DeviceiOS SimulatorWeb
Status-success-iconStatus-success-iconStatus-success-iconStatus-success-iconStatus-waiting-icon Pending

Installation

Terminal
→ expo install expo-keep-awake

If you're installing this in a bare React Native app, you should also follow these additional installation instructions.

Usage

Example: hook

Keep Awake hook
import { useKeepAwake } from 'expo-keep-awake';
import React from 'react';
import { Text, View } from 'react-native';

export default function KeepAwakeExample() {
  useKeepAwake();
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>This screen will never sleep!</Text>
    </View>
  );
}

Example: functions

Keep Awake functions
import { activateKeepAwake, deactivateKeepAwake } from 'expo-keep-awake';
import React from 'react';
import { Button, View } from 'react-native';

export default class KeepAwakeExample extends React.Component {
  render() {
    return (
      <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
        <Button onPress={this._activate} title="Activate" />
        <Button onPress={this._deactivate} title="Deactivate" />
      </View>
    );
  }

  _activate = () => {
    activateKeepAwake();
    alert('Activated!');
  };

  _deactivate = () => {
    deactivateKeepAwake();
    alert('Deactivated!');
  };
}

API

import KeepAwake from 'expo-keep-awake';

Constants

KeepAwake.ExpoKeepAwakeTag

Type: 'ExpoKeepAwakeDefaultTag'

Hooks

useKeepAwake(tag, options)

NameTypeDescription
tag
(optional)
string

Optional - Tag to lock screen sleep prevention. If not provided, the default tag is used.

Default: ExpoKeepAwakeTag
options
(optional)
{ suppressDeactivateWarnings: boolean }

Optional

  • suppressDeactivateWarnings Optional - The call will throw an unhandled promise rejection on Android when the original Activity is dead or deactivated. Set the value to true for suppressing the uncaught exception.

A React hook to keep the screen awake for as long as the owner component is mounted. The optionally provided tag argument is used when activating and deactivating the keep-awake feature. If unspecified, the default tag is used. See the documentation for activateKeepAwake below to learn more about the tag argument.

Returns

  • Undo-iconvoid

Methods

KeepAwake.activateKeepAwake(tag)

NameTypeDescription
tag
(optional)
string

Optional - Tag to lock screen sleep prevention. If not provided, the default tag is used.

Default: ExpoKeepAwakeTag

Prevents the screen from sleeping until deactivateKeepAwake is called with the same tag value.

If the tag argument is specified, the screen will not sleep until you call deactivateKeepAwake with the same tag argument. When using multiple tags for activation you'll have to deactivate each one in order to re-enable screen sleep. If tag is unspecified, the default tag is used.

  • Undo-iconPromise<void>

KeepAwake.deactivateKeepAwake(tag)

NameTypeDescription
tag
(optional)
string

Optional - Tag to release the lock on screen sleep prevention. If not provided, the default tag is used.

Default: ExpoKeepAwakeTag

Releases the lock on screen-sleep prevention associated with the given tag value. If tag is unspecified, it defaults to the same default tag that activateKeepAwake uses.

  • Message-iconAsk a question on the forums about KeepAwake
  • Github-iconView open bug reports for KeepAwake
  • Code-iconView source code for KeepAwake
  • Build-iconView package in npm Registry
  • Edit-iconEdit this page

Was this doc helpful?