从非ui线程的android开关活动

Sta*_*tan 4 android switch-statement unity-game-engine android-activity

我正在研究android unity3d项目,我想在Facebook上发布一些内容.基本上该应用程序正在运行不受我控制的活动.Facebook单点登录要求我提供活动以显示其内容.现在的问题是发布到facebook的触发器是从Unity活动(从本机代码到JNI)出来的.它基本上是我的普通Java对象作为连接器,它是由本机代码中的统一创建的,我可以称之为方法.我也可以访问currentActivity.仍然有麻烦做任何事情.

我总是得到

AndroidRuntime(12845): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
Run Code Online (Sandbox Code Playgroud)

我试图将这个当前活动引用给Facebook authorize()作为绑定的活动,但是给出了错误.我试图切换到我自己的活动,我想在其上启动Facebook.得到了同样的错误.试过这个

Intent intent = new Intent(UnityPlayer.currentActivity.getApplicationContext(), MyActivity.class);
UnityPlayer.currentActivity.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

也很少有其他类似的东西,但只是无法切换活动.我该怎么做?

谢谢

Mah*_*ran 7

那是因为UI操作无法在工作线程上运行.你应该试试runOnUiThread.

UnityPlayer.currentActivity.runOnUiThread(new Runnable() {
public void run() {
  Intent intent = new Intent(UnityPlayer.currentActivity.getApplicationContext(),MyActivity.class);


UnityPlayer.currentActivity.startActivity(intent);
 }

});
Run Code Online (Sandbox Code Playgroud)