Cocos2dxJavascriptJavaBridge.evalString 在什么阶段可以用?

AppActivity 的 onCreate 里用就直接闪退了(我的 launchMode 是 singleTask),请问下 android 下这个你这里 http://forum.cocos.com/t/1-2-2beta2-evalstring/40806/24 说的onEnterForeground 这个回调要写在哪里?

@panda @dumganhar

顺序还问一下,要调用 URL scheme 唤起 app,launchMode是不是应该设置成 singleTask,我现在获取 唤起参数 是在 onNewIntent 里的

这个阶段,引擎都还没有初始化成功,而且在UI线程啊。
Cocos2dxJavascriptJavaBridge.evalString需要在runOnGLThread中执行。

在Cocos2dxActivity.onResume的地方,post事件到GL线程去执行

试下,只要保证activity不重新创建多次即可。

我把下面代码写在 onResume 还是直接闪退
@dumganhar

 this.runOnGLThread(new Runnable() {
        @Override
        public void run() {
//                Cocos2dxJavascriptJavaBridge.evalString("cc.sys.localStorage.setItem('device_id', '\"" + deviceId + "\"')");
            Cocos2dxJavascriptJavaBridge.evalString("console.log('1')");
        }
    });

有啥日志信息?

@dumganhar 这是 adb 的日志

W/WindowManager( 1110): Force-removing child win Window{2af9fb48 u0 SurfaceView} from container Window{1bb8813a u0 org.cocos2d.helloworld/org.cocos2dx.javascript.AppActivity}
I/Zygote  (  513): Process 2977 exited due to signal (11)
W/WindowManager( 1110): Failed looking up window
W/WindowManager( 1110): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@31cae1eb does not exist
W/WindowManager( 1110): 	at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8650)
W/WindowManager( 1110): 	at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8641)
W/WindowManager( 1110): 	at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1142)
W/WindowManager( 1110): 	at android.os.BinderProxy.sendDeathNotice(Binder.java:551)
I/WindowState( 1110): WIN DEATH: null
W/ActivityManager( 1110): Exception thrown during pause
W/ActivityManager( 1110): android.os.DeadObjectException
W/ActivityManager( 1110): 	at android.os.BinderProxy.transactNative(Native Method)
W/ActivityManager( 1110): 	at android.os.BinderProxy.transact(Binder.java:496)
W/ActivityManager( 1110): 	at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:704)
W/ActivityManager( 1110): 	at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:856)
W/ActivityManager( 1110): 	at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:2779)
W/ActivityManager( 1110): 	at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:2636)
W/ActivityManager( 1110): 	at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:2523)
W/ActivityManager( 1110): 	at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:11713)
W/ActivityManager( 1110): 	at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:11579)
W/ActivityManager( 1110): 	at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:12294)
W/ActivityManager( 1110): 	at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:11805)
W/ActivityManager( 1110): 	at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)

从日志看不出具体啥原因,可以参考一下:
http://forum.cocos.com/t/1-6-1-debug-dumganhar/50895/38?u=dumganhar
试试看。

加了 那个 !isTaskRoot,感觉 if 进不去了,
好吧,多谢了,我写文件来传参数了

???,这么黑科技?

没办法的办法,总算有效