小さな問題が発生します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をタスクします。だから、私の質問:この解決策は正しい/間違っていますか?またはあなたは私に他の解決策を与えることができますか?