@sekizlipenguen/react-native-app-exit
v0.0.7
Published
A lightweight React Native module to programmatically exit or restart the application. Compatible with React Native 0.60 and above.
Maintainers
Readme
@sekizlipenguen/react-native-app-exit
A lightweight React Native module to programmatically exit or restart the application. Compatible with React Native 0.60 and above.
Example app
A local playground lives in example/ (same pattern as our other modules).
It tracks the latest stable React Native (currently 0.86.2) for development / device
tests, but is not published to npm.
cd example
npm install
bundle install
bundle exec pod install --project-directory=ios
npm start
# other terminal
npm run ios:sim
# or
npm run android:emuInstallation
Using npm:
npm install @sekizlipenguen/react-native-app-exitUsing yarn:
yarn add @sekizlipenguen/react-native-app-exitiOS Setup
After installing the package, run:
npx pod-installAndroid Setup
No additional setup is required. Autolinking registers the native module when you build the app.
Compatibility
- React Native:
>=0.60 - iOS: Supported
- Android: Supported
- TypeScript: Type definitions included (
src/index.d.ts)
Usage
Default import
import ReactNativeAppExit from '@sekizlipenguen/react-native-app-exit';
ReactNativeAppExit.exitApp();
ReactNativeAppExit.restartApp();Named imports
import {exitApp, restartApp} from '@sekizlipenguen/react-native-app-exit';
exitApp();
restartApp();Example
import React from 'react';
import {Button, View, Alert} from 'react-native';
import ReactNativeAppExit from '@sekizlipenguen/react-native-app-exit';
const App = () => {
const handleExitApp = () => {
Alert.alert(
'Exit App',
'Are you sure you want to close the application?',
[
{text: 'Cancel', style: 'cancel'},
{text: 'Yes', onPress: () => ReactNativeAppExit.exitApp()},
],
);
};
const handleRestartApp = () => {
Alert.alert(
'Restart App',
'Are you sure you want to restart the application?',
[
{text: 'Cancel', style: 'cancel'},
{text: 'Yes', onPress: () => ReactNativeAppExit.restartApp()},
],
);
};
return (
<View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}>
<Button title="Exit App" onPress={handleExitApp} />
<Button title="Restart App" onPress={handleRestartApp} />
</View>
);
};
export default App;Platform-Specific Details
Android
exitAppfinishes the task affinity and kills the process.restartApprelaunches the app's launch intent, clears the task stack, then kills the current process.
iOS
- Apple discourages force-closing apps in production. Prefer a confirmation alert before calling
exitApp. restartApptriggers a React Native reload (RCTTriggerReloadCommandListeners). A full OS-level process restart is not possible on iOS App Store builds.
API
| Method | Description |
| --- | --- |
| exitApp() | Closes the application. |
| restartApp() | Restarts the app (process relaunch on Android, JS/runtime reload on iOS). |
Contribution
Contributions are welcome! Please feel free to submit a pull request or file an issue in the GitHub repository.
License
This project is licensed under the MIT License.
