1 package host.exp.exponent.headless 2 3 import android.os.Handler 4 import host.exp.exponent.taskManager.AppRecordInterface 5 import host.exp.exponent.RNObject 6 import android.os.Looper 7 8 class HeadlessAppRecord : AppRecordInterface { 9 private var reactInstanceManager: RNObject? = null 10 setReactInstanceManagernull11 fun setReactInstanceManager(reactInstanceManager: RNObject?) { 12 this.reactInstanceManager = reactInstanceManager 13 } 14 invalidatenull15 override fun invalidate() { 16 val reactInstanceManagerTemp = reactInstanceManager 17 if (reactInstanceManagerTemp != null) { 18 this.reactInstanceManager = null 19 20 // `destroy` must be called on UI thread. 21 Handler(Looper.getMainLooper()).post { 22 if (reactInstanceManagerTemp.isNotNull) { 23 reactInstanceManagerTemp.call("destroy") 24 } 25 } 26 } 27 } 28 } 29