Я выполняю простой запрос (fql) внутри IntentService (который начинается с нажатия кнопки). Вот мой метод onHandleIntent() класса обслуживания:Запрос внутри IntentService не выполняется.
protected void onHandleIntent(Intent intent)
{
Global appState = ((Global)getApplicationContext());
System.out.println("inside the service now");
String uid=appState.uid[0];
System.out.println("uid ="+uid);
String fqlQuery = "SELECT uid, name, online_presence, status FROM user WHERE uid="+uid+" ";
Bundle params = new Bundle();
params.putString("q", fqlQuery);
Session session = Session.getActiveSession();
System.out.println(session);
Request request = new Request(session, // starting of innerclass
"/fql",
params,
HttpMethod.GET,
new Request.Callback(){
public void onCompleted(Response response) {
//Log.i(TAG, "Result: " +response.toString()); //response.toString()
GraphObject graphObject = response.getGraphObject();
// String s = textViewResults.getText().toString();
if (graphObject != null) {
JSONObject jsonObject = graphObject.getInnerJSONObject();
try {
JSONArray array = jsonObject.getJSONArray("data");
for (int j = 0; j < array.length(); j++) { // always array.length()=1, loop will run jst 1 time
JSONObject object = (JSONObject) array.get(j);
System.out.println("inside inner class now");
System.out.println("id = " +object.get("uid").toString());
System.out.println("name = "+object.get("name").toString());
System.out.println("op ="+object.get("online_presence").toString()+"niraj");
name=object.get("name").toString();
}
} catch (JSONException e) {
e.printStackTrace();
}
} // end of if block
} // end of onCompleted method
});
// Thread.currentThread().sleep(10000);//sleep for 1000 ms
Request.executeBatchAsync(request);
System.out.println("outsise the inner class ____ name : "+name);
}
проблема заключается в том, что сегмент кода внутри внутреннего класса (начиная с запроса) не получает выполняется только. Для вышеуказанного кода я получаю следующий вывод:
07-26 17:21:09.105: I/System.out(1541): inside the service now
07-26 17:21:09.105: I/System.out(1541): uid =100002621905500
07-26 17:21:09.136: I/System.out(1541): {Session state:OPENED, token:{AccessToken
token:ACCESS_TOKEN_REMOVED permissions:[user_likes, user_status,
friends_online_presence, user_online_presence]}, appId:"my app id"}
07-26 17:21:09.206: I/System.out(1541): outsise the inner class ____ name : null
Я не понимаю, есть ли ошибка. даже журнал не показывает никаких ошибок .please help.
Как я вижу, вы передаете строку только как параметр и ничего не делаете с ней, где она должна быть выполнена? – zozelfelfo
, но тот же код, когда я запускаю в своем MainActivity, отлично работает @zozelfelfo – user1872750