3333import androidx .work .WorkerParameters ;
3434
3535import com .facebook .react .ReactApplication ;
36+ import com .facebook .react .ReactHost ;
3637import com .facebook .react .ReactInstanceEventListener ;
37- import com .facebook .react .ReactInstanceManager ;
38- import com .facebook .react .ReactNativeHost ;
3938import com .facebook .react .bridge .ReactContext ;
4039import com .facebook .react .bridge .UiThreadUtil ;
4140import com .facebook .react .jstasks .HeadlessJsTaskConfig ;
@@ -72,16 +71,17 @@ public ListenableFuture<Result> startWork() {
7271 protected abstract HeadlessJsTaskConfig getTaskConfig (Data data );
7372
7473 protected void startTask (final HeadlessJsTaskConfig taskConfig ) {
75- final ReactInstanceManager reactInstanceManager = this .getReactNativeHost ().getReactInstanceManager ();
76- ReactContext reactContext = reactInstanceManager .getCurrentReactContext ();
74+ ReactHost reactHost = this .getReactHost ();
75+ ReactContext reactContext = reactHost .getCurrentReactContext ();
76+
7777 if (reactContext == null ) {
78- reactInstanceManager .addReactInstanceEventListener (new ReactInstanceEventListener () {
78+ reactHost .addReactInstanceEventListener (new ReactInstanceEventListener () {
7979 public void onReactContextInitialized (ReactContext reactContext ) {
8080 HeadlessJsTaskWorker .this .invokeStartTask (reactContext , taskConfig );
81- reactInstanceManager .removeReactInstanceEventListener (this );
81+ reactHost .removeReactInstanceEventListener (this );
8282 }
8383 });
84- reactInstanceManager . createReactContextInBackground ();
84+ reactHost . start ();
8585 } else {
8686 this .invokeStartTask (reactContext , taskConfig );
8787 }
@@ -94,9 +94,9 @@ private void invokeStartTask(ReactContext reactContext, final HeadlessJsTaskConf
9494 }
9595
9696 private void cleanUpTask () {
97- if ( this .getReactNativeHost (). hasInstance ()) {
98- ReactInstanceManager reactInstanceManager = this . getReactNativeHost (). getReactInstanceManager ();
99- ReactContext reactContext = reactInstanceManager .getCurrentReactContext ();
97+ ReactHost reactNativeHost = this .getReactHost ();
98+ if ( reactNativeHost != null ) {
99+ ReactContext reactContext = reactNativeHost .getCurrentReactContext ();
100100 if (reactContext != null ) {
101101 HeadlessJsTaskContext headlessJsTaskContext = HeadlessJsTaskContext .getInstance (reactContext );
102102 headlessJsTaskContext .removeTaskEventListener (this );
@@ -125,7 +125,7 @@ public void onHeadlessJsTaskFinish(int taskId) {
125125 }
126126 }
127127
128- protected ReactNativeHost getReactNativeHost () {
129- return ((ReactApplication ) this .getApplicationContext ()).getReactNativeHost ();
128+ private ReactHost getReactHost () {
129+ return ((ReactApplication ) this .getApplicationContext ()).getReactHost ();
130130 }
131131}
0 commit comments