react-native-navigation的迁移库

NavigationApplication.java 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package com.reactnativenavigation;
  2. import android.app.Activity;
  3. import android.app.Application;
  4. import android.os.Bundle;
  5. import com.facebook.react.ReactApplication;
  6. import com.facebook.react.ReactNativeHost;
  7. import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
  8. import com.reactnativenavigation.controllers.ActivityLifecycleDelegate;
  9. import com.reactnativenavigation.react.DevPermissionRequestImpl;
  10. import com.reactnativenavigation.react.NavigationReactNativeHost;
  11. public abstract class NavigationApplication extends Application implements ReactApplication {
  12. public static NavigationApplication instance;
  13. public static class Config {
  14. public ReactNativeHost reactNativeHost;
  15. public ActivityLifecycleDelegate activityLifecycleDelegate;
  16. }
  17. private Config config;
  18. @Override
  19. public void onCreate() {
  20. super.onCreate();
  21. instance = this;
  22. config = createConfig();
  23. registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
  24. @Override
  25. public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
  26. getConfig().activityLifecycleDelegate.onActivityCreated(activity);
  27. }
  28. @Override
  29. public void onActivityStarted(Activity activity) {
  30. }
  31. @Override
  32. public void onActivityResumed(Activity activity) {
  33. getConfig().activityLifecycleDelegate.onActivityResumed(activity, (DefaultHardwareBackBtnHandler) activity);
  34. }
  35. @Override
  36. public void onActivityPaused(Activity activity) {
  37. getConfig().activityLifecycleDelegate.onActivityPaused(activity);
  38. }
  39. @Override
  40. public void onActivityStopped(Activity activity) {
  41. }
  42. @Override
  43. public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
  44. }
  45. @Override
  46. public void onActivityDestroyed(Activity activity) {
  47. getConfig().activityLifecycleDelegate.onActivityDestroyed(activity);
  48. }
  49. });
  50. }
  51. public final Config getConfig() {
  52. return config;
  53. }
  54. @Override
  55. public ReactNativeHost getReactNativeHost() {
  56. return getConfig().reactNativeHost;
  57. }
  58. public abstract boolean isDebug();
  59. /**
  60. * override this to inject your own configuration
  61. *
  62. * @return the Config
  63. */
  64. protected Config createConfig() {
  65. Config config = new Config();
  66. config.reactNativeHost = new NavigationReactNativeHost(this, isDebug());
  67. config.activityLifecycleDelegate = new ActivityLifecycleDelegate(config.reactNativeHost.getReactInstanceManager(), new DevPermissionRequestImpl());
  68. return config;
  69. }
  70. }