Android cocos2d-x:线程
我遇到了一个小问题:我需要在Android上使用Android cocos2d-x:线程,android,cocos2d-x,Android,Cocos2d X,我遇到了一个小问题:我需要在Android上使用cocos2d-x中的异步任务 private void parseJSONJava() throws ClientProtocolException, IOException, JSONException { STAJSONParser jPars = new STAJSONParser(); jPars.makeHttpRequest(String.format("%s/app/%s/json",STA_URL,STA_APP_
cocos2d-x
中的异步任务
private void parseJSONJava() throws ClientProtocolException, IOException, JSONException
{
STAJSONParser jPars = new STAJSONParser();
jPars.makeHttpRequest(String.format("%s/app/%s/json",STA_URL,STA_APP_UID));
}
但此代码崩溃应用程序出现错误,无法在未调用Looper.prepare()
的线程内创建处理程序。我通过添加runOnUiThread
来解决这个问题:
me.runOnUiThread(new Runnable(){
public void run(){
STAJSONParser jPars = new STAJSONParser();
jPars.makeHttpRequest(String.format("%s/app/%s/json",STA_URL,STA_APP_UID));
}
});
“我”是我的活动。
来自STAJSONParser
的代码:
public JSONObject makeHttpRequest(String url) {
AsyncGetJson Task= new AsyncGetJson(url);
try {
return Task.execute().get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
AsyncGetJson
task它是一个从服务器获取JSON的简单异步任务。
那么,我的问题是:这个解决方案是对的还是错的?或者你可以给我其他的解决方案?我不明白你为什么不能这样做。您还可以像前面提到的m.ding一样使用libcurl,以及pthreads和json解析器。但问题是,您需要自己管理pthread。这比你现在这样做更“混乱”。再说一次,使用JNI也不是很好。这是一个巨大的权衡,可能倾向于支持JNI和Android Java SDK iOS和Android,pType是底层线程机制,当你使用iOS的NScand和AsdioStasCaskTebug(我假设……)/P>时,已经为你管理了,是的,它是正确的(我相信这是最简单的方法。另一种方法是,在C++级别使用LIcCURL)。