react-native-activity-android
Version:
Provides a method to pause Android app (Activity.moveTaskToBack), as well as lifecycle hooks when app is paused and resumed.
98 lines (70 loc) • 2.65 kB
Markdown
## react-native-activity-android
Provides a method to move Android apps to the background (instead of exiting), and lifecycle hooks when
the application is paused and resumed.
Useful if you want to capture listen for `BackButton` press and pause your application.
### Installation
1. Install module
```
npm install --save react-native-activity-android
```
2. In `android/setting.gradle`
```
...
include ':ActivityAndroid', ':app'
project(':ActivityAndroid').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-activity-android/android')
```
3. In `android/app/build.gradle`
```
...
dependencies {
...
compile project(':ActivityAndroid')
}
```
4. Register module (in `MainActivity.java`)
```
import ca.jaysoo.activityandroid.ActivityAndroidPackage; // <---- Import here
public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {
......
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mReactRootView = new ReactRootView(this);
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("index.android.bundle")
.setJSMainModuleName("index.android")
.addPackage(new MainReactPackage())
.addPackage(new ActivityAndroidPackage(this)) // <---- Add here
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
mReactRootView.startReactApplication(mReactInstanceManager, "ExampleRN", null);
setContentView(mReactRootView);
}
......
}
```
### Usage
Moving an application to the background.
```js
import { BackAndroid } from 'react-native';
import ActivityAndroid 'react-native-activity-android';
BackAndroid.addEventListener('hardwareBackPress', () => {
// Note: callbacks are optional.
ActivityAndroid.moveTaskToBack(() => console.log('worked'), () => console.log('failed'));
return false; // Don't exit the app.
});
```
Lifecycle hooks.
```js
import ActivityAndroid 'react-native-activity-android';
ActivityAndroid.addEventListener('activityPause', () => {
console.log('App is moved to the background');
});
ActivityAndroid.addEventListener('activityResume', () => {
console.log('App is moved to the foreground');
});
ActivityAndroid.removeEventListener('activityResume', callbackFn);
ActivityAndroid.removeEventListener('activityPause', callbackFn));
```