2015-10-20 91 views
1

我试图安排Alarm使用AlarmManager试图重新创建QuickBlox会话每两个小时。我在后台通过AlarmManager拨打IntentServiceQuickblox通过意向服务创建会话

以下是出故障的一段代码:

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服务启动的同一线程上返回结果。