cocos2d-x
我遇到一个小问题:我需要在 Android 上使用异步任务。
private void parseJSONJava() throws ClientProtocolException, IOException, JSONException
{
STAJSONParser jPars = new STAJSONParser();
jPars.makeHttpRequest(String.format("%s/app/%s/json",STA_URL,STA_APP_UID));
}
但是此代码使应用程序崩溃并出现错误Can't create handler inside thread that has not called 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
任务它是一个从服务器获取 JSON 的简单 AsyncTask。所以,我的问题是:这个解决方案是对还是错?或者你可以给我其他解决方案吗?