mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Add first-class support to ReactInstanceManager for Activity-less usage
Summary: I'm not sure if we'll ever need to do more than this (probably!) but I want to have a specific option for Activity-less usage, so that our logic in ReactInstanceManager and elsewhere is more clear. I want to be able to confidently assert that the Activity is present and correct, or never present, depending on if this `requireActivity` flag is set; instead of adding else statements that imply "well, the Activity should be here, hope everything is okay" which feels hacky. Doesn't change much for now, but it's an additional constraint in the RN Android codebase that we need to explicitly embed in code so that we can point to it, and so that the logic is more clear. Changelog: [Internal] Reviewed By: javache, motiz88 Differential Revision: D30504616 fbshipit-source-id: d2abdb7c4765a16113c9517406cdbb8cf42822ff
This commit is contained in:
committed by
Facebook GitHub Bot
parent
59021521e7
commit
4841e1bae0
@@ -45,6 +45,7 @@ public class ReactInstanceManagerBuilder {
|
||||
private @Nullable NotThreadSafeBridgeIdleDebugListener mBridgeIdleDebugListener;
|
||||
private @Nullable Application mApplication;
|
||||
private boolean mUseDeveloperSupport;
|
||||
private boolean mRequireActivity;
|
||||
private @Nullable LifecycleState mInitialLifecycleState;
|
||||
private @Nullable UIImplementationProvider mUIImplementationProvider;
|
||||
private @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler;
|
||||
@@ -171,6 +172,16 @@ public class ReactInstanceManagerBuilder {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* When {@code false}, indicates that correct usage of React Native will NOT involve an Activity.
|
||||
* For the vast majority of Android apps in the ecosystem, this will not need to change. Unless
|
||||
* you really know what you're doing, you should probably not change this!
|
||||
*/
|
||||
public ReactInstanceManagerBuilder setRequireActivity(boolean requireActivity) {
|
||||
mRequireActivity = requireActivity;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the initial lifecycle state of the host. For example, if the host is already resumed at
|
||||
* creation time, we wouldn't expect an onResume call until we get an onPause call.
|
||||
@@ -283,6 +294,7 @@ public class ReactInstanceManagerBuilder {
|
||||
mJSMainModulePath,
|
||||
mPackages,
|
||||
mUseDeveloperSupport,
|
||||
mRequireActivity,
|
||||
mBridgeIdleDebugListener,
|
||||
Assertions.assertNotNull(mInitialLifecycleState, "Initial lifecycle state was not set"),
|
||||
mUIImplementationProvider,
|
||||
|
||||
Reference in New Issue
Block a user