AndroidJavaRunnable is the Unity representation of a java.lang.Runnable object.
// Pass execution context over to the Java UI thread. function Start () { var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); var activity = unityPlayer.GetStatic.<AndroidJavaObject>("currentActivity"); activity.Call("runOnUiThread", new AndroidJavaRunnable(runOnUiThread)); }function runOnUiThread() { Debug.Log("I'm running on the Java UI thread!"); }
using UnityEngine; using System.Collections; public class Example : MonoBehaviour { void Start() { AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity"); activity.Call("runOnUiThread", AndroidJavaRunnable(runOnUiThread)); } void runOnUiThread() { Debug.Log("I'm running on the Java UI thread!"); } }
import UnityEngine import System.Collections public class Example(MonoBehaviour): def Start() as void: unityPlayer as AndroidJavaClass = AndroidJavaClass('com.unity3d.player.UnityPlayer') activity as AndroidJavaObject = unityPlayer.GetStatic[of AndroidJavaObject]('currentActivity') activity.Call('runOnUiThread', AndroidJavaRunnable(runOnUiThread)) def runOnUiThread() as void: Debug.Log('I\'m running on the Java UI thread!')