Как создать Android-обработчик в плагине Java под названием Unity
Итак, скажем, у вас есть плагин для Unity Java, вы вызываете в плагин Java так
private static readonly AndroidJavaClass m_somePlugin = new AndroidJavaClass("com.unity3d.Plugin.blah.SomePlugin");
using (var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
using (var currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity"))
{
m_somePlugin.CallStatic("onInitialise", currentActivity);
}
}
и плагин выглядит примерно так
public class SomePlugin
{
static public void onInitialise(final Activity currentActivity)
{
Handler someHandler = new Handler();
}
}
Все довольно просто. За исключением того, что он потерпит крах. Создание обработчика является причиной. Я предполагаю, что это проблема темы.
Итак, вопрос в том, как создать обработчик в плагине Java, в действии, которое я передаю? Кто-нибудь знает?
1 ответ
Решение
Да, решением проблемы было использование runOnUiThread. Так что для того, чтобы код выше не зависал, SomePlugin должен выглядеть так
public class SomePlugin
{
static public void onInitialise(final Activity currentActivity)
{
currentActivity.runOnUiThread(new Runnable() {
Handler someHandler = new Handler(); });
}
}