2015-10-20 5 views
1

Я пытаюсь запланировать Alarm с использованием AlarmManager, который пытается воссоздать сеанс QuickBlox каждые два часа. Я звоню IntentService в фоновом режиме через AlarmManager.Quickblox создает сеанс, вызванный службой замысла

Ниже приведен фрагмент кода, который выходит из строя:

protected void onHandleIntent(Intent intent) 
{ 
    String APP_ID = "xxxx"; 
    String AUTH_KEY = "xxxx"; 
    String AUTH_SECRET = "xxxx"; 
    QBSettings.getInstance().fastConfigInit(APP_ID, AUTH_KEY,AUTH_SECRET); 
    if (!QBChatService.isInitialized()){ 
     QBChatService.init(getApplicationContext()); 
    } 

    ChatService.getInstance().chatCreateWriteSessionWithoutPlay(getApplicationContext());} 

Определение chatCreateWriteSession выглядит следующим образом:

public void chatCreateWriteSessionWithoutPlay(final Context ctx) { 
     chatService = QBChatService.getInstance(); 
     // Create QB user 
     final QBUser user = new QBUser(); 

     user.setLogin(AppController.getInstance().getCHAT_ID()); 
     user.setPassword(AppController.getInstance().getCHAT_PASSWORD()); 
     QBAuth.createSession(user, new QBEntityCallbackImpl<QBSession>() { 
      @Override 
      public void onSuccess(QBSession session, Bundle args) { 

      } 

      @Override 
      public void onError(List<String> errors) { 

      } 
     }); 
    } 

ответ

1

все методы, которые возвращают результат в QBEntityCallback выполнить его на основной линии Ui. Просто используйте синхронный тип метода, например QBSession session = QBAuth.createSession (пользователь QBUser), чтобы вернуть результат в том же потоке, что и служба Android.

Смежные вопросы