소스 검색

Update android-specific-use-cases.md

Guy Carmeli 7 년 전
부모
커밋
2b182556c3
1개의 변경된 파일22개의 추가작업 그리고 0개의 파일을 삭제
  1. 22
    0
      docs/android-specific-use-cases.md

+ 22
- 0
docs/android-specific-use-cases.md 파일 보기

@@ -304,5 +304,27 @@ When Shared Element Transition is used, a cross-fade transition is used between
304 304
 
305 305
 To disable the cross-fade animation, set `animated: false` when pushing the second screen. Disabling this animation is useful if you'd like to animate the reset of the elements on screen your self.
306 306
 
307
+## Compatibility with HeadlessJs
308
+In most cases, `Navigation.startSingleScreenApp()` or `Navigation.startTabBasedApp` are called from global context. If the bundle is parsed when the app is not running, this will result in the app opening even though the developer had no intent to open the app.
309
+
310
+`Navigation.startSingleScreenApp()` or `Navigation.startTabBasedApp` are called from global context since RNN assums react context isn't created when the app is launched. When a background task completes, react context is put into a **paused state** and not destroyed. Therefore we should also handle the use case where our app is opened when react context is created , and the bundle has already been parsed. We do that by listening to `RNN.AppLaunched` event.
311
+
312
+```js
313
+import {Navigation, NativeEventsReceiver} from 'react-native-navigation';
314
+
315
+Promise.resolve(Navigation.isAppLaunched())
316
+  .then(appLaunched => {
317
+    if (appLaunched) {
318
+      startApp(); // App is launched -> show UI
319
+    } else {
320
+      new NativeEventsReceiver().appLaunched(startApp); // App hasn't been launched yet -> show the UI only when needed.
321
+    }
322
+  });
323
+
324
+function startApp() {
325
+  Navigation.startTabBasedApp({ ... });
326
+}
327
+```
328
+
307 329
 ## Reloading from terminal
308 330
 You can easily reload your app from terminal using `adb shell am broadcast -a react.native.RELOAD`. This is particularly useful when debugging on device.