diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index bba39b5d0ec..4500e16bb86 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -92,6 +92,7 @@ public abstract class com/facebook/react/ReactActivity : androidx/appcompat/app/ protected fun ()V protected fun createReactActivityDelegate ()Lcom/facebook/react/ReactActivityDelegate; protected fun getMainComponentName ()Ljava/lang/String; + public fun getReactActivityDelegate ()Lcom/facebook/react/ReactActivityDelegate; public fun getReactDelegate ()V protected final fun getReactInstanceManager ()Lcom/facebook/react/ReactInstanceManager; protected final fun getReactNativeHost ()Lcom/facebook/react/ReactNativeHost; @@ -178,6 +179,7 @@ public class com/facebook/react/ReactFragment : androidx/fragment/app/Fragment, protected static final field ARG_FABRIC_ENABLED Ljava/lang/String; protected static final field ARG_LAUNCH_OPTIONS Ljava/lang/String; protected field mReactDelegate Lcom/facebook/react/ReactDelegate; + protected field shouldCallDelegateLifecycleEvents Z public fun ()V public fun checkPermission (Ljava/lang/String;II)I public fun checkSelfPermission (Ljava/lang/String;)I diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java index ef827a4f16a..45306772da1 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java @@ -69,6 +69,10 @@ public abstract class ReactActivity extends AppCompatActivity mDelegate.getReactDelegate(); } + public ReactActivityDelegate getReactActivityDelegate() { + return mDelegate; + } + @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java index 12f2d9daba8..b61b66f8fcf 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java @@ -32,6 +32,8 @@ public class ReactFragment extends Fragment implements PermissionAwareActivity { protected ReactDelegate mReactDelegate; + protected boolean shouldCallDelegateLifecycleEvents = true; + @Nullable private PermissionListener mPermissionListener; public ReactFragment() { @@ -99,19 +101,25 @@ public class ReactFragment extends Fragment implements PermissionAwareActivity { @Override public void onResume() { super.onResume(); - mReactDelegate.onHostResume(); + if (shouldCallDelegateLifecycleEvents) { + mReactDelegate.onHostResume(); + } } @Override public void onPause() { super.onPause(); - mReactDelegate.onHostPause(); + if (shouldCallDelegateLifecycleEvents) { + mReactDelegate.onHostPause(); + } } @Override public void onDestroy() { super.onDestroy(); - mReactDelegate.onHostDestroy(); + if (shouldCallDelegateLifecycleEvents) { + mReactDelegate.onHostDestroy(); + } } // endregion