Follow de official docs
"Native modules should not have any assumptions about what thread they are being called on, as the current assignment is subject to change in the future. If a blocking call is required, the heavy work should be dispatched to an internally managed worker thread, and any callbacks distributed from there".
If you want to run code from mainThread you should use Handler class from android.
Handler handler = new Handler(context.getMainLooper());
handler.post(new Runnable(){ // Code that needs to be run on the main thread. })
Running code in main thread from another thread